问个关于java和cpp通信的问题

海盗2019 2004-11-22 12:07:24
从java服务器端传输了几千字(tcp,socket)到cpp的客户端
cpp那边接受到的查过1440长度的包都会切包,分包接受
第一个包是java传的带包头的1440长的包,后面的包读没有包头
请点解?
...全文
153 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
海盗2019 2004-12-03
  • 打赏
  • 举报
回复
谢谢大家,结贴。
debug148 2004-11-23
  • 打赏
  • 举报
回复
ding
GJA106 2004-11-23
  • 打赏
  • 举报
回复
按楼主的意思(cpp切包是指收到包后再切,还是分包接收数据?):应该在java这边作判断,如果发送字节数据小于1440,数据当作一个包发送;
如果发送字节数据大于1440,分包发送:1765的包就会收到2个包:1440-325;3250的包就会收到3个包:1440--1440--325。

如果java这边已经与cpp有一个常连接,发送数据包是“自由的”。
taolei 2004-11-23
  • 打赏
  • 举报
回复
搂主大概对tcp/ip数据流还不是很了解,如果cpp那边不是你写的话,你可以去请教一下写cpp那位前辈。
jFresH_MaN 2004-11-22
  • 打赏
  • 举报
回复
不太清楚
帮顶
cnfalcon 2004-11-22
  • 打赏
  • 举报
回复
做高层应用没有这么麻烦吧,只需把数据发出去,tcp/ip会自动分包传送,到达客户端之后会自动组合,服务器端和客户端都不用处理.
如果你是做底层的程序的话,只有自己来分包组包了.
海盗2019 2004-11-22
  • 打赏
  • 举报
回复
cpp接受到超过1440的包,都会按照1440一个接一个的接受包数据。
如:
325的包就会收到一个包:325
1765的包就会收到2个包:1440-325
3250的包就会收到3个包:1440--1440--325
类推……
海盗2019 2004-11-22
  • 打赏
  • 举报
回复
to taolei:协议用的TCP/IP协议。
java这边发送之前,都会检查一下长度是否达到最大长度,超长的话,会重新设置socket的send length。
to zyg158:
java这边切包的话,cpp那边就得组包,有没有更方便的解决方法??
zyg158 2004-11-22
  • 打赏
  • 举报
回复
那边超过一定长度要切包,你这里用Java到一定长度就要分包。
否则两边处理不一致,当然就没有包头了^_^
bs221cn 2004-11-22
  • 打赏
  • 举报
回复
请同C++程序员联系
taolei 2004-11-22
  • 打赏
  • 举报
回复
网络传输是双方的问题,不能单纯说是哪方的问题。你提出的问题没有描述得很清楚,不好判断。

cpp是不是你写的?
传输数据的具体协议?
海盗2019 2004-11-22
  • 打赏
  • 举报
回复
多谢楼上的,我也顶一下,好像是cpp的问题,java可以的。

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧