多谢楼上的,我也顶一下,好像是cpp的问题,java可以的。

解决方案 »

  1.   

    网络传输是双方的问题,不能单纯说是哪方的问题。你提出的问题没有描述得很清楚,不好判断。cpp是不是你写的?
    传输数据的具体协议?
      

  2.   

    那边超过一定长度要切包,你这里用Java到一定长度就要分包。
    否则两边处理不一致,当然就没有包头了^_^
      

  3.   

    to taolei:协议用的TCP/IP协议。
    java这边发送之前,都会检查一下长度是否达到最大长度,超长的话,会重新设置socket的send length。
    to zyg158:
    java这边切包的话,cpp那边就得组包,有没有更方便的解决方法??
      

  4.   

    cpp接受到超过1440的包,都会按照1440一个接一个的接受包数据。
    如:
    325的包就会收到一个包:325
    1765的包就会收到2个包:1440-325
    3250的包就会收到3个包:1440--1440--325
    类推……
      

  5.   

    做高层应用没有这么麻烦吧,只需把数据发出去,tcp/ip会自动分包传送,到达客户端之后会自动组合,服务器端和客户端都不用处理.
    如果你是做底层的程序的话,只有自己来分包组包了.
      

  6.   

    搂主大概对tcp/ip数据流还不是很了解,如果cpp那边不是你写的话,你可以去请教一下写cpp那位前辈。
      

  7.   

    按楼主的意思(cpp切包是指收到包后再切,还是分包接收数据?):应该在java这边作判断,如果发送字节数据小于1440,数据当作一个包发送;
    如果发送字节数据大于1440,分包发送:1765的包就会收到2个包:1440-325;3250的包就会收到3个包:1440--1440--325。如果java这边已经与cpp有一个常连接,发送数据包是“自由的”。