利用socket实现java程序自动关闭
今天发现一段有意思的程序,记录下来,娱乐自己.
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程序自动关闭相关推荐
- winsock使用java编写_利用Socket进行Java网络编程(一)
利用Socket进行Java网络编程(一) 考试吧(Exam8.com) 2003-03-04 08:00:00 评论(0)条 作者: 郗旻 Socket是网络上运行的两个程序间双向通讯的一端,它既可 ...
- 利用TPTP对Java程序进行性能测试
简单地说,TPTP 是一个EclipseFoundation 顶级项目,它的目标是:构建一个通用的可扩展的基于标准的工具平台,软件开发人员可以在这个平台上创建专用的可互操作的...测试和性能工具. T ...
- 利用终端运行java程序
利用终端运行JAVA程序 开发Java程序,需要三个步骤:编写程序,编译程序,运行程序 不过首先得配置好你电脑中的Java环境变量,才能执行. 1,首先编写一个程序 打开记事本编写一个文件,就以Hel ...
- 利用exe4j将java程序打包成exe可执行文件
利用exe4j将java程序打包成exe可执行文件 一直在用exe4j,很好用,包括现在电脑中很多在使用的java程序,都是用exe4j打包的,所以也想做一些博客,来跟小伙伴们一起分享我的学习,让大家 ...
- 批处理文件 执行java_利用批处理文件运行java程序
当我们要运行java程序时,可以写一个批处理文件(.bat),以便双击即可运行java程序! 在次测试过程中需要注意的几个问题: 1.当需要java程序需要引进第三方包时,需要在设置classpath ...
- 利用InstallAnywhere 打包java程序
InstallAnywhere 的使用跟其他应用程序差不多, 最有可能出现问题的是带 jre 的 java 程序打包. 先简要介InstallAnywhere 的操作步骤: 运行程序 -> 创建 ...
- 利用脚本启动java程序
今天在工作中,需要写一个shell脚本,启动一个socket程序,从而模拟短信网关.查了一些资料,终于搞定了,现在记录一下,方便大家查阅. 为了说明使用方法,我们就用最简单的程序来实现,比如我们要运行 ...
- 如何注册java程序为windows服务
最近想找个软件来控制电脑的关机时间,在网上找了几个,都是可视化界面的可以设置具体的关机时间的软件.由于我想编写的关机程序是运行在别人机器上,只能让该机器在晚上17 点到23 点25 分才上网,到了23 ...
- Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信
本文计划采用socket实现客户端和服务端的任意双向通信,即客户端可以随时给服务端发消息,服务端也可以随时给客户端发消息,最终结果就是一个类似与QQ的聊天软件的功能. 以下代码可以直接拷贝到Eclip ...
最新文章
- Vivado Hardware Manager的使用
- 6. 函数参数 与 展开运算符
- php访问mysql工具类
- 生产系统支撑终端故障处理的三个误区
- java中8进制常量_下列关于Java语言简单数据类型的说法中,正确的一项是______。A.以0开头的整数代表8进制整型常量B....
- 关于C#调用API的理解(汇多考勤机HD4K)
- windows10 下 用图片手把手教你 卸载 cygwin
- aspects_具有Aspects的Java中的Mixin –用于Scala特性示例
- java程序设计教程(项目式)_《Java程序设计项目化教程(第2版)》怎么样_目录_pdf在线阅读 - 课课家教育...
- 笨方法学python(本文为阅读时从此书摘录的笔记) 第四天
- java五子棋人机对战_实现简单的人机对战五子棋(实践)
- kali linux嗅探图片_kali linux 密码嗅探工具 Dsniff 详解
- 小说阅读网站设计HTML,HTML5+CSS3网站设计基础教程
- 高等教育学:教育目的与教育制度
- PTA 7-46 新浪微博热门话题 (30 point(s))
- 关于微服务的两篇文章以及Eventuate
- 防范映像劫持(IFEO HIJACK)
- 保罗.格雷厄姆:如何获得创业Ideas | How to Get Startup Ideas
- 腾讯云Linux云服务器搭建网站
- tomcat系列-04-启用APR