熟悉socket和tomcat的请进!

SOSO327 2007-08-08 04:00:22
在开发中遇到的问题,找了很多资料也没找到.具体是这样的:
现在在做的一个监控软件(通过http://ipAdrress:8080,访问正常),需要GPRS网络端口的方式长连接.我已经写了一个多线程的socket程序recievServer用于监听服务器端口(使用端口5000).单独运行可以.但是想要在tomcat中启动,所以改为servlet后加入web.xml中.
问题来了,tomcat启动时recieveServer可以正常使用.但是原先的监控软件在键入http://ipAddress:8080就不能访问了.将recieveServer的servlet从web.xml里删除再重启tomcat,访问正常!难道是相互有影响?
请问哪位知道原因和解决办法?敬请赐教,不胜感激!
...全文
207 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
SOSO327 2007-08-08
  • 打赏
  • 举报
回复
ok!多谢,结帖给分.高手兄能加我qq吗:13414192
piaopiao11 2007-08-08
  • 打赏
  • 举报
回复
你在执行这段代码的外面在加个线程就可以了。
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();
SOSO327 2007-08-08
  • 打赏
  • 举报
回复
有点明白了,正在查询servlet初始化的东西.
能再说说关于servlet初始化的问题吗
piaopiao11 2007-08-08
  • 打赏
  • 举报
回复
你应该是把上面的这段代码放到了servlet初始化时做的把,你那个while(true)一执行
这个初始化工作就没发子做完了。
SOSO327 2007-08-08
  • 打赏
  • 举报
回复
我的recieveServer是多线程的.相关代码如下:
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());}
SOSO327 2007-08-08
  • 打赏
  • 举报
回复
piaopiao11兄,能说详细点吗,你说的那个"servlet里开个线程去启动你的socket程序"我不会啊.不好意思,才搞java不久.
piaopiao11 2007-08-08
  • 打赏
  • 举报
回复
可能你的程序阻塞了tomcat正常加载,应该servlet里开个线程去启动你的socket程序

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧