日期:2014-05-20  浏览次数:20865 次

熟悉socket和tomcat的请进!
在开发中遇到的问题,找了很多资料也没找到.具体是这样的:
    现在在做的一个监控软件(通过http://ipAdrress:8080,访问正常),需要GPRS网络端口的方式长连接.我已经写了一个多线程的socket程序recievServer用于监听服务器端口(使用端口5000).单独运行可以.但是想要在tomcat中启动,所以改为servlet后加入web.xml中.
    问题来了,tomcat启动时recieveServer可以正常使用.但是原先的监控软件在键入http://ipAddress:8080就不能访问了.将recieveServer的servlet从web.xml里删除再重启tomcat,访问正常!难道是相互有影响?
    请问哪位知道原因和解决办法?敬请赐教,不胜感激!

------解决方案--------------------
你在执行这段代码的外面在加个线程就可以了。
new Thread(){
public void run(){
try{
rServer=new ServerSocket(RECEIVE_PORT);
// 初始化ServerSocket
System.out.println(new Date()+ "\nThe server is ready! \nPort: "+RECEIVE_PORT);
while(true){ // 等待用户请求
request=rServer.accept();
// 接收客户机连接请求
receiveThread=new serverThread(request);
// 生成serverThread的实例
receiveThread.start();
// 启动serverThread线程
}
}catch(IOException e){
System.out.println(e.getMessage());}
}
}.start();