社区
网络编程
帖子详情
在用stream方式流式socket编程,怎样使得一个recv()只接收一个send()发来的数据,谢谢!
soarhigh
2003-12-19 06:01:27
在用stream方式流式socket编程,我在客户端连续调用几次send(),而在服务器端只调用了一次recv(),但是它接收了这几次send()发来的全部数据,而我希望一个recv()只接收一个send()发来的数据,我该怎么办?谢谢!
...全文
96
7
打赏
收藏
在用stream方式流式socket编程,怎样使得一个recv()只接收一个send()发来的数据,谢谢!
在用stream方式流式socket编程,我在客户端连续调用几次send(),而在服务器端只调用了一次recv(),但是它接收了这几次send()发来的全部数据,而我希望一个recv()只接收一个send()发来的数据,我该怎么办?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
stephenland74
2003-12-20
打赏
举报
回复
最好的办法是,在recv端在另行准备一个缓冲区,将每次接受到的数据存入该缓冲区,然后由另外一个线程P,从这个缓冲区中取出,这样作有一个前提就是,发送的数据报文的前几个字节由于本次发送报文的长度,那么P线程便可先按照约定,将msgLen读出,再根据msgLen中提供的长度,将数据从缓冲区中读出,而缓冲区中的后面的数据向前移动即可。
lyzcom
2003-12-20
打赏
举报
回复
最好的办法是使用分段数据包,包发过来以后再将其分解。而不管收到了多少个。
sharkhuang
2003-12-20
打赏
举报
回复
send以后延时啊!或者send以后收到确认再send
soarhigh
2003-12-19
打赏
举报
回复
可是如果按gxxlc(冰良)的指点,会丢数据。
请问,write和read是什么意思?
jian
2003-12-19
打赏
举报
回复
应该是对应的吧,有一个send就有一个recv。改成用write和read试试看呢?
gxxlc
2003-12-19
打赏
举报
回复
控制接收的字节数,比如设置成你发一次的字节数
e.g.:
send(s,buf,10,0)对应的recv(s,buf,10,0)
两头都设置成10,就可以了。然后多调用几次recv,就有可能一次收到一个send了
要确保每次收到的大小都为发送的大小,我建议使用UDP方式,比较好控制。
sevencat
2003-12-19
打赏
举报
回复
不太可能。
vc socket 编程
sockets(套接字)编程有三种,
流式
套接字(SOCK_
STREAM
),
数据
报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的
socket编程
是采用的
流式
套接字。 在这个程序中,将两个工程添加到
一个
工作区。要链接一...
Linux网络编程(五)-
Socket编程
03:TCP客户端流程【创“
流式
”套接字/socket()、连服务器/connect()、读read()/
recv
()、写write()/
send
()、关闭】
socket()打开
一个
网络通讯端口,如果成功的话,就像open()一样返回
一个
文件描述符,应用程序可以像读写文件一样用read/write在网络上收发
数据
,如果socket()调用出错则返回-1。只需要组应用层的
数据
包,底层(网络层...
流式
Socket编程
流式
Socket编程
1、实现基于
流式
套接字的网络功能框架,包括客户端与服务端两个部分(以类的形式); 2、在第一步的基础上,实现服务器/客户端之间的回射功能; 3、改进服务端程序,使其支持多线程,即为每个客户端...
windows环境下用c++实现
socket编程
socket即套接字,用于描述地址和端口,是
一个
通信链的句柄。应用程序通过socket向网络发出请求或者回应。 sockets(套接字)编程有三种,
流式
套接字(SOCK_
STREAM
),
数据
报套接字(SOCK_DGRAM),原始套接字(SOCK_...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章