社区
网络编程
帖子详情
windows socket send()和recv()问题?
wangcgfan
2011-07-14 09:13:41
客户端向服务器端使用send()发送数据,发送数据的长度不定,服务器端使用recv()接收数据,如果recv函数中提供的buffer比较小,无法一次接受完客户端send的数据,是不是需要循环多次使用recv才可完整接收数据。
另外,如果客户端使用多线程想服务器端发送不同的数据条目,这样服务器端使用recv()接收的数据条目会不会出现混乱(每个数据条目需要多次recv()才可完整的接收)?如果混乱应该使用什么方法解决这个问题。
...全文
449
7
打赏
收藏
windows socket send()和recv()问题?
客户端向服务器端使用send()发送数据,发送数据的长度不定,服务器端使用recv()接收数据,如果recv函数中提供的buffer比较小,无法一次接受完客户端send的数据,是不是需要循环多次使用recv才可完整接收数据。 另外,如果客户端使用多线程想服务器端发送不同的数据条目,这样服务器端使用recv()接收的数据条目会不会出现混乱(每个数据条目需要多次recv()才可完整的接收)?如果混乱应该使用什么方法解决这个问题。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
有相关的参考资料也可以
Windows
和 Linux下使用
socket
下载网页页面内容(可设置接收/发送超时)的代码
主要难点在于设置
recv
()与
send
()的超时时间,具体要注意的事项,请看代码注释部分,下面是代码: [cpp]view plaincopyprint? #include<stdio.h> #include<sys/types.h> #include<stdlib.h> #include<string.h> #...
dis bgp peer 查看状态的 connect_BSD
Socket
API判断服务端与客户端的连接状态
判断服务端与客户端的连接状态UE4中判断连接状态是通过F
Socket
::GetConnectionState(),它通过调用select函数判断
socket
的读写及错误状态得出的连接状态。但是,在
windows
平台下,UE 4.23的这个函数并不能正确获取到连接状态。当客户端调用close
socket
关闭连接后,在服务端调用GetConnectionState()仍然返回的E
Socket
Conn...
Python实现TCP客户端与服务器(代码以及代码分析)
使用python
Socket
套接字来实现TCP客户端,TCP服务端。UDP的发送和UDP的接收。 TCP的连接分为服务端和客户端。
Windows
Socket
s API实现网络异步通讯
摘要:本文对如何使用面向连接的流式套接字实现对网卡的编程以及如何实现异步网络通讯等
问题
进行了讨论与阐述。 一、 引言 在80年代初,美国加利福尼亚大学伯克利分校的研究人员为TCP/IP网络通信开发了一个专门用于网络通讯开发的API。这个API就是
Socket
接口(套接字)--当今在TCP/IP网络最为通用的一种API,也是在互联网上进行应用开发最为通用的一种API。在微软联合其它几家公司共
linux个人常用配置命令
一 添加用户: sudo adduser test11 使其具有管理员权限: sudo adduser test11 sudo
网络编程
18,356
社区成员
64,161
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章