解决方案 »

  1.   

    最后你说方法卡住,我不知道是什么原因,
    但是socket传输本来就有字数限制,包太大,你可以分包传输
      

  2.   

    这个问题我在se板块提问过,得到的结论是socket不像http那样会等到一条消息都收完整之后才收到,而是一条消息有可能会分多次收到,所以,当你觉得你的消息没有收完整的时候,你必须继续等着,直到你收到了第n+1条数据后觉得这条消息完整了。
      

  3.   

    你最后read是读取完了所有的包 你还读取,自然要等待,你需要做包的长度检查,服务端告诉你 这个包有多长。你只读取多少内容
      

  4.   

    tcp的数据一定要要用while接收的,楼主可以统计收到的字节数,达到规定就是要再读了,再读肯定会卡死,除非连接断开