社区
网络编程
帖子详情
windows socket send()和recv()问题?
wangcgfan
2011-07-14 09:13:41
客户端向服务器端使用send()发送数据,发送数据的长度不定,服务器端使用recv()接收数据,如果recv函数中提供的buffer比较小,无法一次接受完客户端send的数据,是不是需要循环多次使用recv才可完整接收数据。
另外,如果客户端使用多线程想服务器端发送不同的数据条目,这样服务器端使用recv()接收的数据条目会不会出现混乱(每个数据条目需要多次recv()才可完整的接收)?如果混乱应该使用什么方法解决这个问题。
...全文
374
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
打赏
举报
回复
有相关的参考资料也可以
Socket
之
send
和
recv
原理剖析&TCP网络应用程序的注意点
这里写目录标题TCP网络应用程序的注意点1. TCP网络应用程序的注意点介绍2. 网络程序通信的流程
Socket
之
send
和
recv
原理剖析1. 认识TCP
socket
的发送和接收缓冲区2.
send
原理剖析3.
recv
原理剖析4.
send
和
recv
原理剖析图5. 小结 TCP网络应用程序的注意点 1. TCP网络应用程序的注意点介绍 当 TCP 客户端程序想要和 TCP 服务端程序进行通信的时候必须要先 建立连接 TCP 客户端程序一般不需要绑定端口号,因为客户端是主动发起建立连接的。 TCP 服
【
socket
】 read和
recv
区别、write和
send
区别
1.问chatGPT应用:
socket
read和
recv
区别? 2.问chatGPT应用:
socket
write和
send
区别?
Python网络编程基础学习笔记-
socket
中
send
和
recv
原理剖析
socket
中
send
和
recv
原理剖析 一、认识TCP中
socket
的发送和接收缓冲区 当创建一个TCP
socket
对象的时候会有一个发送缓冲区和一个接受缓冲区,这个发送和接受缓冲区指的是内存中一片空间 二、
send
原理剖析
send
是不是直接把数据发给服务端? 不是要想发数据,必须通过网卡发送数据,应用程序是无法直接通过网卡发送数据的,他需要调用操作系统接口,也就是说:应用程序将需要发送的数据先写入到发送缓冲区(内存中的一片空间),再由操作系统控制网卡把发送缓冲区的数据发送给服务端网卡 三、
recv
原
socket
send
recv
使用心得(Python
windows
)
最近使用python
socket
做了一些程序,遇到了一些
问题
,后来逐一解决了。这里结合之前的认知,总结以下心得,避免后来人踩坑。 1、
send
和
send
all的区别 发送方使用
send
all,不要使用
send
。
send
all在返回的时候,会确保数据已传给tcpip;
send
并不一定会把数据全部发完,而是发一次,就返回发送的数据长度。在一般的程序设计中,我们更多场景是使用
send
all,使用
send
就需要自己处理未发送的数据。 2、
recv
是拷贝数据,不是接收数据,每次拷贝多少?
recv
并不是取完对方发送
Socket
中
send
()函数和
recv
()函数详解
目录1、
send
函数2、
recv
函数关于
socket
的
send
和
recv
的超时设置 1、
send
函数 int
send
(
SOCKET
s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用
send
函数来向TCP连接的另一端发送数据。 客户程序一般用
send
函数向服务器发送请求,而服务器则通常用
send
函数来向客户程序发送应答。 (1)第一个参数指定发送端套接字描述符; (2)第二个参数指明一个存放应用程序要发送数据的缓冲区; (3)第三
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章