有可能是在随机分配客户端的端口的时候出了问题,其实你可以将每一个ServerSocket分配的Client有关的Socket限定在一个范围之内,ServerSocket(9000)分配的客户端Socket在5000到7000,而ServerSocket(9010)在7001到9000,这样就不会出问题了。

解决方案 »

  1.   

    一般Server在accept()后,会返回一个Socket,这时你先new一个Socket(portNum),然后再将Server作了accept()后的Socket返回,如
    Socket s= new Socket(10000);
    s=ServerSocket.accept();
    我没有实际做过,不知道行不行。
      

  2.   

    Socket s= new Socket(10000);
    没有这种构造函数
      

  3.   

    情况是这样的:
    ServerSocket server1=new ServerSocket(9000);
    ServerSocket server2=new ServerSocket(9010);两个服务监听不同的端口9000和9010
    Socket s=server1.accept();
    其中s被绑定到了随机端口;
    同样
    Socket s2=server2.accept();
    其中s2也被绑定到了随机端口;现象:
    两个不同的监听服务的数据格式不同,在s2没有运行时,s1运行良好;
    同样在s1没有运行时s2运行也良好,一旦两者都运行时,就出现了数据格式解析不正确的现象。大伙分析一下什么原因
      

  4.   

    不是socket的问题,可能跟共享数据冲突有关