最近,做一个项目,需要做一个web服务器,该服务器要与Android端和GPRS模块互相通信。考虑Android端与服务器端用Http通信,GPRS模块与服务器用Tcp通信。因此需要在Web服务器启动的时候启动加载一个线程负责Tcp端口的监听。
search了一些方法,从中挑选了两个在此记录一下:
方法一:监听(Listener)
我们创建一个监听类,继承自ServletContextListener,代码如下:
1 packagewill;2
3
4 importjava.io.IOException;5
6 importjavax.servlet.ServletContextEvent;7 importjavax.servlet.ServletContextListener;8
9 public class SocketListener implementsServletContextListener {10
11 privateMyThread myThread;12 @Override13 public voidcontextDestroyed(ServletContextEvent arg0) {14 if (myThread!=null&&myThread.isInterrupted()) {15 myThread.interrupt();16 }17
18 }19
20 @Override21 public voidcontextInitialized(ServletContextEvent arg0) {22 String str =null;23 if (str==null&&myThread==null) {24 myThread=newMyT