今天发现一段有意思的程序,记录下来,娱乐自己.

1.实运行main方法时传两个参数   '应用命令'和'socket端口'

步骤1.启动java程序,参数(start 80890),启动serverSocket,启动线程,

步骤2.启动java程序,参数(shutdown 80890)启动socket客户端,推送字符串,服务端线程获取字符串,停止步骤2启动的程序,停止步骤1.启动的程序.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;import com.boco.vip.framework.util.common.CollectionUtil;public class SocketUsing {private static void controlServer(String appCommant,int port){try{Socket clientSock = new Socket("127.0.0.1",port);//创建socket客户端(客户端依赖服务端,服务端没有启动报异常)if(appCommant.trim().toLowerCase().equals("shutdown")){//判断应用命令是否为shutdown//创建输出流BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(clientSock.getOutputStream()));bw.write("shutdown/n");//向服务端传送"shutdown"bw.flush();bw.close();clientSock.close();System.exit(0);}else{System.exit(0);}}catch(Exception e){if(appCommant.trim().toLowerCase().equals("shutdown")){System.exit(0);}else{try{final ServerSocket ss = new ServerSocket(port);//匿名类,创建线程new Thread(new Runnable(){public void run(){while(true){try{BufferedReader br = null;try{//创建输入流br = new BufferedReader(new InputStreamReader(ss.accept().getInputStream()));String command = br.readLine();if(CollectionUtil.checkStringEmpty(command)&&"shutdown".equals(command)){System.exit(0);}}catch(Exception eee){}}catch(Exception e){}}}}).start();}catch(Exception ee){}}}}public static void main(String[] args){controlServer(args[0],Integer.parseInt(args[1]));}
}

  

转载于:https://www.cnblogs.com/rmsSpring/archive/2013/03/05/2944756.html

利用socket实现java程序自动关闭相关推荐

  1. winsock使用java编写_利用Socket进行Java网络编程(一)

    利用Socket进行Java网络编程(一) 考试吧(Exam8.com) 2003-03-04 08:00:00 评论(0)条 作者: 郗旻 Socket是网络上运行的两个程序间双向通讯的一端,它既可 ...

  2. 利用TPTP对Java程序进行性能测试

    简单地说,TPTP 是一个EclipseFoundation 顶级项目,它的目标是:构建一个通用的可扩展的基于标准的工具平台,软件开发人员可以在这个平台上创建专用的可互操作的...测试和性能工具. T ...

  3. 利用终端运行java程序

    利用终端运行JAVA程序 开发Java程序,需要三个步骤:编写程序,编译程序,运行程序 不过首先得配置好你电脑中的Java环境变量,才能执行. 1,首先编写一个程序 打开记事本编写一个文件,就以Hel ...

  4. 利用exe4j将java程序打包成exe可执行文件

    利用exe4j将java程序打包成exe可执行文件 一直在用exe4j,很好用,包括现在电脑中很多在使用的java程序,都是用exe4j打包的,所以也想做一些博客,来跟小伙伴们一起分享我的学习,让大家 ...

  5. 批处理文件 执行java_利用批处理文件运行java程序

    当我们要运行java程序时,可以写一个批处理文件(.bat),以便双击即可运行java程序! 在次测试过程中需要注意的几个问题: 1.当需要java程序需要引进第三方包时,需要在设置classpath ...

  6. 利用InstallAnywhere 打包java程序

    InstallAnywhere 的使用跟其他应用程序差不多, 最有可能出现问题的是带 jre 的 java 程序打包. 先简要介InstallAnywhere 的操作步骤: 运行程序 -> 创建 ...

  7. 利用脚本启动java程序

    今天在工作中,需要写一个shell脚本,启动一个socket程序,从而模拟短信网关.查了一些资料,终于搞定了,现在记录一下,方便大家查阅. 为了说明使用方法,我们就用最简单的程序来实现,比如我们要运行 ...

  8. 如何注册java程序为windows服务

    最近想找个软件来控制电脑的关机时间,在网上找了几个,都是可视化界面的可以设置具体的关机时间的软件.由于我想编写的关机程序是运行在别人机器上,只能让该机器在晚上17 点到23 点25 分才上网,到了23 ...

  9. Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信

    本文计划采用socket实现客户端和服务端的任意双向通信,即客户端可以随时给服务端发消息,服务端也可以随时给客户端发消息,最终结果就是一个类似与QQ的聊天软件的功能. 以下代码可以直接拷贝到Eclip ...

最新文章

  1. Vivado Hardware Manager的使用
  2. 6. 函数参数 与 展开运算符
  3. php访问mysql工具类
  4. 生产系统支撑终端故障处理的三个误区
  5. java中8进制常量_下列关于Java语言简单数据类型的说法中,正确的一项是______。A.以0开头的整数代表8进制整型常量B....
  6. 关于C#调用API的理解(汇多考勤机HD4K)
  7. windows10 下 用图片手把手教你 卸载 cygwin
  8. aspects_具有Aspects的Java中的Mixin –用于Scala特性示例
  9. java程序设计教程(项目式)_《Java程序设计项目化教程(第2版)》怎么样_目录_pdf在线阅读 - 课课家教育...
  10. 笨方法学python(本文为阅读时从此书摘录的笔记) 第四天
  11. java五子棋人机对战_实现简单的人机对战五子棋(实践)
  12. kali linux嗅探图片_kali linux 密码嗅探工具 Dsniff 详解
  13. 小说阅读网站设计HTML,HTML5+CSS3网站设计基础教程
  14. 高等教育学:教育目的与教育制度
  15. PTA 7-46 新浪微博热门话题 (30 point(s))
  16. 关于微服务的两篇文章以及Eventuate
  17. 防范映像劫持(IFEO HIJACK)
  18. 保罗.格雷厄姆:如何获得创业Ideas | How to Get Startup Ideas
  19. 腾讯云Linux云服务器搭建网站
  20. tomcat系列-04-启用APR

热门文章

  1. Python--day21--包
  2. BZOJ1036[ZJOI2008]树的统计——树链剖分+线段树
  3. 自定义View的学习(一)
  4. 解决EMF里引用对象的刷新问题
  5. LA 2957 最大流,最短时间,输出路径
  6. 如何正确的更换网站服务器?
  7. iOS中如何旋转UIView
  8. ?请问怎样将excel表格中的时间格式读取为字符串格式?
  9. 论高性能机房标识标签管理办法一现状篇
  10. mysql连表的sql语句_sql语句之连表操作