以上程序很简单,是调试使用。实际作用是在设计通信协议中如果client不单独起线程接收,每次 write()后马上read() 也不会报错。但我需要上述结构。在线等待回复

解决方案 »

  1.   

    1.jdk安装稳定版就可以。实在没有报出异常,首先确定你的linux设置是否正常:setSoTimeout(100)能够正确抛出异常,如果不行---a.jdk有问题;b.linux配置有问题
    2.服务端停止?AdminTestServer程序中没有哪一句是停止ServetSocket的语句出现,那操作系统或jvm怎么时候把port端口停止?
    3.程序比较乱:怎么时候中止Socket阻塞操作、在循环中怎么时候不用读取、当read或write时应该作什么判断..........
      

  2.   

    线程结束后run()方法最尾应该清空所有开辟的内存:
    ss.close();
    ss = null;
    so.close();
    s0 = null;
    in.close();
    in = null;
    out = null;
    ...........................
      

  3.   

    这个不是很难的,新建一个线程类来处理这个socket连接。在线程类的构造函数中添加socket参数,类的实现中添加接收server消息的代码。eg.
    class MyConnectionHandler extends Threads{
      Socket connection;
      MyConnectionHandler(Socket soc){
        connection=soc;
      }
      public void HandlerConnection{
        InputStream input=connection.getInputStream();
        ...
        ...
      }
    }