windows socket send()和recv()问题?

wangcgfan 2011-07-14 09:13:41
客户端向服务器端使用send()发送数据,发送数据的长度不定,服务器端使用recv()接收数据,如果recv函数中提供的buffer比较小,无法一次接受完客户端send的数据,是不是需要循环多次使用recv才可完整接收数据。
另外,如果客户端使用多线程想服务器端发送不同的数据条目,这样服务器端使用recv()接收的数据条目会不会出现混乱(每个数据条目需要多次recv()才可完整的接收)?如果混乱应该使用什么方法解决这个问题。
...全文
374 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangcgfan 2011-07-14
  • 打赏
  • 举报
回复
客户端通过send()向服务器端发送数据,每次发送100 BYTE,连续发2次,服务器端通过revc()函数接收数据,每次接收30 BYTE,通过一个循环来接收,接收完客户的的第一条数据后recv函数的返回值是什么情况,recv会不会接收完第一条数据后,没有任何提示,直接又接收第二条数据?
帝国队长 2011-07-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ndy_w 的回复:]
1 tcp:是。udp:不是。
2 多线程发送要同步,无论tcp或udp,recv不会乱。
[/Quote]
正解
孤魂游梦 2011-07-14
  • 打赏
  • 举报
回复
http://blog.csdn.net/andylin02/article/details/1665060
ouyh12345 2011-07-14
  • 打赏
  • 举报
回复
一般来说,要循环接收及发送
Eleven 2011-07-14
  • 打赏
  • 举报
回复
包头+数据,包头中包含后续数据包的大小(字节数),接收端先接下包头信息,得到后续将要接收的数据的大小,然后按照这个大小来接收后续的包~
ndy_w 2011-07-14
  • 打赏
  • 举报
回复
1 tcp:是。udp:不是。
2 多线程发送要同步,无论tcp或udp,recv不会乱。
wangcgfan 2011-07-14
  • 打赏
  • 举报
回复
有相关的参考资料也可以

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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