社区
Java SE
帖子详情
java socket 接受c语言发送的字节包问题
zhengjing01
2007-10-10 06:33:52
问题:
用java做客户端接受c通过socket传过来的数据包,c端把一个文件分成几个包传输,每个包的以缓冲2048字节来发送,
请问java端怎么接受全部的数据??
请教各位了,请提示相关代码.
...全文
394
7
打赏
收藏
java socket 接受c语言发送的字节包问题
问题: 用java做客户端接受c通过socket传过来的数据包,c端把一个文件分成几个包传输,每个包的以缓冲2048字节来发送, 请问java端怎么接受全部的数据?? 请教各位了,请提示相关代码.
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
java小强
2012-03-02
打赏
举报
回复
http://cuisuqiang.iteye.com/blog/1434442
不动联系我
java小强
2012-03-02
打赏
举报
回复
http://cuisuqiang.iteye.com/blog/1434416
肯定有所帮助
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包的话你还得确定有没有丢包什么的。
java
与
C语言
使用
socket
通信传递结构体数据
java
语言模拟
C语言
的结构体,以方便
java
与
C语言
使用
socket
通信。
Java
解析 Linux C结构体
Linux C
socket
通信传输结构体消息,
Java
解析
C语言
结构体里的数据
java
socket
客户端
发送
接收16进制数据
原文链接:https://blog.csdn.net/qq_39403545/article/details/84072739。版权声明:本文为CSDN博主「汤姆猫丶」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
发送
时:首先将你的16进制的数据,转化成byte[],然后
发送
。接收时:获得数据,然后将byte[]的东西转化成16进制字符串。1 服务端
socket
。2 客户端
socket
。
java
socket
通信数据类型转换(与
C语言
通信)
java
和c/c++之间进行
socket
通信,
socket
通信是以
字节
流或者
字节
包
进行的,
socket
发送
方须将数据转换为
字节
流或者
字节
包
,而接收方则将
字节
流和
字节
包
再转换回相应的数据类型。如果
发送
方和接收方都是同种语言,则一般只涉及到
字节
序的调整。而对于
java
和c/c++的通信,则情况就要复杂一些,主要是因为
java
中没有unsigned类型,并且
java
和c在某些数据类型上的长度不一致...
JAVA
SOCKET
服务端接收C客户端
字节
长度的
问题
问题
如下: 我用
JAVA
写的服务端,每收请求以线程响应,读取报文的代码如下: DataInputStream dis=new DataInputStream(
socket
.getInputStream()); //缓冲区的大小 byte[] bt=new byte[MsgEnvironment.MAX_MESSAGE_LENGTH];//MsgEnvironment.MAX_MESS
Java SE
62,623
社区成员
307,257
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章