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

解决方案 »

  1.   

    可能你的程序阻塞了tomcat正常加载,应该servlet里开个线程去启动你的socket程序
      

  2.   

    piaopiao11兄,能说详细点吗,你说的那个"servlet里开个线程去启动你的socket程序"我不会啊.不好意思,才搞java不久.
      

  3.   

    我的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());}
      

  4.   

    你应该是把上面的这段代码放到了servlet初始化时做的把,你那个while(true)一执行
    这个初始化工作就没发子做完了。
      

  5.   

    有点明白了,正在查询servlet初始化的东西.
    能再说说关于servlet初始化的问题吗
      

  6.   

    你在执行这段代码的外面在加个线程就可以了。
    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();
      

  7.   

    ok!多谢,结帖给分.高手兄能加我qq吗:13414192