java socket 接受c语言发送的字节包问题

zhengjing01 2007-10-10 06:33:52
问题:

用java做客户端接受c通过socket传过来的数据包,c端把一个文件分成几个包传输,每个包的以缓冲2048字节来发送,

请问java端怎么接受全部的数据??

请教各位了,请提示相关代码.
...全文
394 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
java小强 2012-03-02
  • 打赏
  • 举报
回复
java小强 2012-03-02
  • 打赏
  • 举报
回复
zhengjing01 2007-10-11
  • 打赏
  • 举报
回复
昏了,没人回,还是靠自己,
zhengjing01 2007-10-11
  • 打赏
  • 举报
回复
还有一点,c服务端发过来的报文注意点,开头8位为长度,后面跟内容,报文发送完以#sendend结尾.

该怎么接受报文,然后包接受的报文一行一行写入文件中呢??(写文件部分就不用提示,只需要提示下怎么接受到传

过来的字节数,然后怎么根据开头部分的大小来接受传过来的报文)

谢谢各位发表意见,分不够再加
zhengjing01 2007-10-10
  • 打赏
  • 举报
回复
楼上的提示有点道理,先谢了,明天去试试,

一楼的规则这些肯定是先定义好的,udp数据报发送的形式是不用的,这样就保证不了数据的完整性

c通过socket通讯是字节形式发送的,java这边就需要处理字节,这块是得到了文件,但文件中有部分

数据是多出的,还有个别是不正确的,不知是否跟字节的顺序有关
qybao 2007-10-10
  • 打赏
  • 举报
回复
have a try

InputStream is = your_socket.getInputStream();
int len = 2048;
byte[] b = new byte[len];
int readlen = 0;
while (true) {
readlen = is.read(b, 0, len);
//do something here
if (readlen != len) {
break;
}
}
cl55 2007-10-10
  • 打赏
  • 举报
回复
这和语言没关系,用什么语言都一样吧。 你想好文件传输的protocol,然后再写。 比如,怎么确定文件已发完,如果是UDP包的话你还得确定有没有丢包什么的。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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