解决方案 »

  1.   

    显然Socket可以双向收发多次,只不过你程序的读写关系不匹配(Server和Client之间)导致发生了死等而已。
      

  2.   

    干嘛不用mina之类的nio框架,socket编程将变得容易得多,而且性能也比自己写的好多了。
      

  3.   

    在一个主线程里同时使用一个socket通信,需要顺序的一个发消息、一个接消息,稍有不慎,会存在等待的情况。可以考虑将一对一的读、写放在单独的线程里,这样,C-->S和S-->C就可以并行交流了。
    (不能使用Runnable方式的多线程,会有Socket被提前回收的情况。)
      

  4.   

    在服务器端要对socket.accept方法进行循环,才能接受多次客户端请求。
    参考:http://blog.csdn.net/turkeyzhou/article/details/5007125
      

  5.   

    同一个Socket 可以多次连接的,一次连接也是可以多次收发数据的。
    楼主的数据发送不出去,估计是接收端没有把发送的数据接收处理吧。
    客户端和服务端的数据收发,是要双方联动处理的,不能只发不收也不能只收不发。