客户端用Socket建立了到服务器的连接(我不知道服务器的具体实现方式)
当客户端向服务器发包还没有结素的时候,也就是正在发的时候
在这种情况下
(1)客户端可不可以再向服务器发下一个包
(2)客户端可不可接受服务器的包

解决方案 »

  1.   

    客户端用Socket建立了到服务器的连接(我不知道服务器的具体实现方式)
    当客户端向服务器发包还没有结素的时候,也就是正在发的时候
    在这种情况下
    (1)客户端可不可以再向服务器发下一个包
    (2)客户端可不可接受服务器的包执行完发送命令之后,你就可以执行接收命令,等待接收了。你当然可以连续地发送,但是因为你不了解服务器端的实现方式,可能会出现一些问题。最好是等上次请求得到回应之后再发送下一个请求。
      

  2.   

    我觉的和服务器没有关系啊,这是socket协议的机制问题
      

  3.   

    如果你用的是TCP协议,当你向服务端发送一个包时,服务端会给你一个应答信号的,这个跟服务端的实现方式没有关系
    其他的就像"UnAgain() "所说的
      

  4.   

    我觉的和服务器没有关系啊,这是socket协议的机制问题我认为和服务器的处理方式是有关系的。对于你的两个请求,服务器端的处理时间会不会一致?如果服务器端并行处理,并且对于你的两个请求的处理时间存在差异的话,比如,对于第二个请求的回应先于第一个请求而准备完毕,那么你的接收端就有可能先收到第二个请求。另外,我先作个声明,我对socket方面的处理了解不是很深,所以,我假设,如果服务器端的处理两个请求的线程同时准备完毕,然后同时向同一个socket的OutputStream写数据,那么,客户端的InputStream会收到什么信息?我对楼主的问题是这样理解的,楼主是想把两个请求通过一个socket的OutputStream发送给服务器。服务器能不能正确解析?我有些怀疑。使用iexplorer打开一个网页时,网页上的图片等附属部件都需要分别向服务器请求下载。对于这种情况,explorer的做法是分别创建不同的socket,每个socket请求一次。建立多个socket肯定会更多的消耗系统资源,那么,iexplorer为什么偏要这么做呢?
      

  5.   

    第一个问题迷茫中,又有新疑问
    在我不知道服务器端是什么用的情况下
    不知道用ServerSocket还是ServerSocketChannel下
    我可以在客户端用SocketChannel写代码吗??
      

  6.   

    正在研究NIO,还不能回答你的问题。