社区
网络编程
帖子详情
数据包接收和发送问题
yphuan
2005-01-13 11:20:48
在使用tcp连接发送数据包时,我连续调用send,发送不同的数据,可是在接收的时候,如果两次发送的数据包不是很大,则接收时,将一起接收,即一次recv动作将把两次send的数据全都接收进来,也可能是两次的数据被一次send出去,请问如何才能使得,每一次recv就接收一次send的数据,无论数据包有多小?谢谢!
...全文
139
8
打赏
收藏
数据包接收和发送问题
在使用tcp连接发送数据包时,我连续调用send,发送不同的数据,可是在接收的时候,如果两次发送的数据包不是很大,则接收时,将一起接收,即一次recv动作将把两次send的数据全都接收进来,也可能是两次的数据被一次send出去,请问如何才能使得,每一次recv就接收一次send的数据,无论数据包有多小?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fisker0303
2005-01-14
打赏
举报
回复
严重同意楼上的。
是的,粘包问题。
可以去网上搜一下。
aspvbjava
2005-01-14
打赏
举报
回复
tcp没有包边界的概念,数据是一个字节一个字节发送的,只能你自己分析收到的数据
可以发送一个结构,传送数据包的长度
struct datastruct{
char *flag;
int len;
}
或者采用udp
99263
2005-01-14
打赏
举报
回复
设两个缓冲区,一个为数据缓冲区,一个为临时缓冲区,接收数据时,将接收到的数据保存到临时缓冲区中,然后拷贝到数据缓冲区中,然后分析数据缓冲区中的内容,不过你得定义数据包头和包尾,有时可能还剩半个包,就先放在数据缓冲区中,下次会再收到另一个半包的数据。
newshute
2005-01-14
打赏
举报
回复
传送时指定传输的数据大小,接收时不管接收到多少都只取你要求的大小。或者看一下异步传输...
sharkhuang
2005-01-14
打赏
举报
回复
粘包问题。解决方法之一:甚至socket为不缓存直接发送!
二:发送和接受头里面有长度的校验
yphuan
2005-01-14
打赏
举报
回复
http://www.vckbase.com/document/viewdoc/?id=1203,这个是带图的。
HHunter
2005-01-14
打赏
举报
回复
同意 newshute(小武) 的说法
yphuan
2005-01-14
打赏
举报
回复
谢谢楼上的几位,我找到了那个帖子http://community.csdn.net/Expert/FAQ/FAQ_Index.asp?id=146252
大致有思路了,谢谢!!
用java写的tcp
数据包
发送
和
接收
代码
用java写的tcp
数据包
发送
和
接收
代码,客户端与服务端测试代码
数据包
发送
与
接收
数据包
发送
与
接收
的过程
计算机网络 传输层 TCP和UDP协议
Re: 计算机网络 传输层 TCP和UDP协议 # 传输层协议 TCP 和 UDP 的应用场景 要
发送
的内容多,需要将
发送
的内容分成多个
数据包
发送
(TCP) 要
发送
的内容少,一个
数据包
就能
发送
全部内容(UDP) # 传输层协议和应用层...
JAVA 实现UDP协议
数据包
接收
和
发送
JAVA 实现UDP
数据包
数据
发送
和数据
接收
* 实现步骤: * 1.创建DatagramSocket对象,绑定端口号 要和
发送
数据端口号一致 * 2.创建字节数组,接受发来的数组 * 3.创建
数据包
对象DatagramPacket...
发送
/
接收
数据包
与
发送
/
接收
字节的区别.
这几天第一次遇到了这样的
问题
,网络连接
发送
和
接收
的数据量特别大,之前我用自己的台式电脑,后来帮我朋友弄手提电脑,发现
接收
和
发送
的数据量特别地大,刚开始没注意看是
接收
数据包
还是
接收
字节,以为是电脑出
问题
了或者...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章