客户端向服务器发送数据之后、然后接收从服务器发送过来的数据
发送与接收要创建两个socket链接吗如果只创建一个的话、发送完数据之后、如何知道什么时候服务器那边有数据送过来了呢

解决方案 »

  1.   

    Socket只需要一个。但从Socket可以得到输入和输出两个流。一般从流中读取可以有两种模式:
    1、阻塞模式,就是发完后就调用读取,该读取方法会一直将线程阻塞,直到对方发过来数据。
    2、非阻塞模式,可以通过InputStream.available方法判断是否有数据,有就读,没有就sleep
      

  2.   

    我看到网上是用这个inputStream = new DataInputStream(client.getInputStream())这个方法创建一个流
    然后调用读取的函数 inputStream.read(buf); 不知道是阻塞在那个部份、创建这个流的时候阻塞?还是读取数据的时候阻塞呢
      

  3.   

    当然是读取流的时候阻塞了。如果不用序列化或者结构化的数据传输,没必要用DataInputStream,
    如果只是字符串通信,用BufferedReader最好。