项目启动开启socket服务
来源:互联网 发布:金日十数据 编辑:程序博客网 时间:2024/04/30 14:55
Web项目中需要在项目启动时开启socket服务
用于收发消息
1.web.xml中配置
端口号为9999的socket 服务端,添加监听
<context-param>
<param-name>socketPort</param-name>
<param-value>9999</param-value>
</context-param>
<listener>
<description>Socket服务随web启动而启动</description>
<listener-class>com.util.Mylistener</listener-class>
</listener>
2.监听类
单开一个线程,负责socket
public class Mylistener implements ServletContextListener{
private SocketThread socketThread;
public void contextDestroyed(ServletContextEvent e){
if(socketThread!=null && socketThread.isInterrupted()){
socketThread.closeServerSocket();
socketThread.interrupt();
}
}
public void contextInitialized(ServletContextEvent e){
ServletContext servletContext = e.getServletContext();
if(servletContext!=null && socketThread==null){
socketThread=new SocketThread(null,servletContext);
socketThread.start();
}
}
}
3.socket线程
public class SocketThread extends Thread{
private ServletContext servletContext;
private ServerSocket serverSocket;
public SocketThread(ServerSocket serverSocket,ServletContext servletContext){
this.servletContext=servletContext;
//从web.xml中context-param节点获取socket端口
String port=this.servletContext.getInitParameter("socketPort");
if(serverSocket==null){
try{
this.serverSocket=new ServerSocket(Integer.parseInt(port));
}catch(IOException e){
e.printStackTrace();
}
}
}
public void run(){
while(!this.isInterrupted()){
//线程未中断执行循环
try{
Socket socket=serverSocket.accept();
if(socket!=null)
new SocketData(socket,this.servletContext).start();
}catch(IOException e){
e.printStackTrace();
}
}
}
public void closeServerSocket(){
try{
if(serverSocket!=null&&!serverSocket.isClosed())
serverSocket.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
- 项目启动开启socket服务
- java web 项目启动开启 socket server
- java web 项目启动开启 socket server
- java web 项目启动开启 socket server 作者:Mchange
- java web 项目启动开启 socket server 作者:Mchange
- (转) java web 项目启动开启 socket server
- ubuntu 让服务开启启动
- centos 开启启动服务优化
- JAVA实践-TOMCAT启动项目提示的各种异常:空指针异常,未开启服务等
- Web应用启动socket服务
- ubuntu启动时开启或停止服务
- linux--开启启动 resin,nginx 服务
- ubuntu启动时开启或停止服务
- APP首次启动提示开启定位服务
- CentOS7 开启端口号 设置服务启动
- 在linux上开启一个socket服务(一)
- 开启服务时:报socket failed :EACCES (Permission denied) 错误
- BAE3 使用Port扩展-SSH和自己开启Socket服务
- audiorecord Overrun user, server, flags
- 第十七周OJ项目六用数字造数字
- Ubuntu 14.04 安装TFTP server
- iOS中正确的截屏姿势
- 感慨额。。。。
- 项目启动开启socket服务
- 第17周 项目2-引用作参数(2)
- 九度OJ—题目1549:货币问题
- 快速排序算法的JAVA实现
- PE结构详解
- Redis数据类型
- 第六阶段:Activity和Intent的学习
- AEAI Miscdp文件上传功能使用心得
- Leetcode Single Number