社区
网络编程
帖子详情
如何清空socket缓存区的数据
paradise099
2007-03-21 03:30:18
当客户端向服务端发出命令后,在规定的超时时间里未收到回答便退出了.而第二次发命令时,读到的是第一次返回的数据.所以想在发命令前把输入缓存区清空.请问如何清空socket缓存区的数据?VC里有现成的函数吗?谢谢!
...全文
3532
20
打赏
收藏
如何清空socket缓存区的数据
当客户端向服务端发出命令后,在规定的超时时间里未收到回答便退出了.而第二次发命令时,读到的是第一次返回的数据.所以想在发命令前把输入缓存区清空.请问如何清空socket缓存区的数据?VC里有现成的函数吗?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
paradise099
2007-04-04
打赏
举报
回复
fantiyu_sr() ( ),每次发出命令后,客户端并不断开连接.所有不会有socket就被销毁了.
fantiyu_sr
2007-04-03
打赏
举报
回复
首先,VC中没有现成的函数,socket的缓冲区是内核来维护的
其次,不明白你为什么要清除这个缓冲区,当你上次客户端退出操作的时候缓冲区存在数据不假,但是客户端退出,socket就被销毁了,怎么还会有个缓冲区?
你的客户端下次连接服务器难道不是建立一个新的socket?缓冲区里面怎么可能还有数据?
Wenxy1
2007-04-03
打赏
举报
回复
同意 anjuta_c(天天学习不退步)
socket 的in/out buffer 是由内核来维护。
mapleneu
2007-04-02
打赏
举报
回复
有一个INTERNET_FLAG_RELOAD参数,可以达到这个功能
paradise099
2007-04-02
打赏
举报
回复
wo wo wo !没有人能给我一个满意的回答。在等等吧!
paradise099
2007-03-24
打赏
举报
回复
anjuta_c(天天学习不退步) 能推荐一本这方面的书吗??谢谢!!
shenyi0106
2007-03-23
打赏
举报
回复
BOOL setsockopt(SOCKET s,
int level,
int optname,
const char *optval,
int optlen);
那optval是干什么用的?
anjuta_c
2007-03-23
打赏
举报
回复
楼上,那是设置缓冲区大小,不是清空缓冲区
shenyi0106
2007-03-23
打赏
举报
回复
好象有个叫setSocketOpt()的函数可以设置缓冲区的吧,试试那个吧
anjuta_c
2007-03-23
打赏
举报
回复
你说的情况是一种非常正常的情况,还是去看看书吧
anjuta_c
2007-03-23
打赏
举报
回复
tcp recv
内核copy数据到socket接收缓冲区 ==== 应用进程调用recv copy socket接受缓冲区到应用进程.
tcp send
应用进程调用send copy数据到socket发送缓冲区,内核copy socket缓冲区数据到tcp/ip协议栈
socket缓冲区是由内核来维护的,是不能清楚的啊,老大
paradise099
2007-03-23
打赏
举报
回复
其实我这就是串命令了,上一条的返回超时,被下一条命令接收了.
paradise099
2007-03-23
打赏
举报
回复
???怎么没人回答呢??
pyrophile
2007-03-22
打赏
举报
回复
close(),退出连接就应该清空了
anjuta_c
2007-03-22
打赏
举报
回复
tcp recv
内核copy数据到socket接收缓冲区 ==== 应用进程调用recv copy socket接受缓冲区到应用进程.
tcp send
应用进程调用send copy数据到socket发送缓冲区,内核copy socket缓冲区数据到tcp/ip协议栈
socket缓冲区是由内核来维护的!!!
hamimelon
2007-03-22
打赏
举报
回复
closesocket()
paradise099
2007-03-22
打赏
举报
回复
ascloudy() ,你没理解我的问题。不是清空我自定义的,而是socket的缓冲区.
paradise099
2007-03-22
打赏
举报
回复
shoutsown? 是shutdown??
goodgod105
2007-03-22
打赏
举报
回复
好象是你没shoutsown的原因吧
ascloudy
2007-03-21
打赏
举报
回复
memset(buf, 0, sizeof(buf));
Python中的
Socket
与 ScoketServer 通信及遇到问题解决方法
Socket
有一个缓冲
区
,缓冲
区
是一个流,先进先出,发送和取出的可自定义大小的,如果取出的
数据
未取完缓冲
区
,则可能存在
数据
怠慢。本文通过实例代码给大家介绍Python中的
Socket
与 ScoketServer 通信及遇到问题解决方法 ,需要的朋友参考下吧
Socket
清空
缓存
区
情况一:知晓
缓存
区
中
数据
的大小 这种情况应该就不用多说了,直接循环的把
数据
都读取出来就行了。 情况二:不知道
缓存
区
中
数据
的大小 方案一 close一次
socket
,这个方案有效是有效,但这样的小问题还不至于如此大动干戈,因此不建议使用。 方案二 使用recv来读取,但是在阻塞模式下效率低下,因为在不知道
数据
的情况下,在最后一次读取的情况下需要等待到超时才会知道
数据
是否读取完毕。 方案三 使用fg...
Socket
编程快速入门
本课程将理本课程将理啊 论结合实践,带你从零开始,系统学习
Socket
编程技术,让
Socket
的学习不再那么零散与难以掌握,同时会提炼出
Socket
网络传输的核心思想与构架,并带你踩坑出坑,增加你的分析与处理问题的啊aasa 能力,完善你的编程思想与知识体系。论结合实践,带你从零开始,系统学习
Socket
编程技术,让
Socket
的学习不再那么零散与难以掌握,同时会提炼出
Socket
网络传输的核心思想与构架,并带你踩坑出坑,增加你的分析与处理问题的能力,完善你的编程思想与知识体系。
linux
socket
清空
缓存
,linux
socket
清空
缓存
区
情况一:知晓
缓存
区
中
数据
的大小这种情况应该就不用多说了,直接循环的把
数据
都读取出来就行了。情况二:不知道
缓存
区
中
数据
的大小方案一close一次
socket
,这个方案有效是有效,但这样的小问题还不至于如此大动干戈,因此不建议使用。方案二使用recv来读取,但是在阻塞模式下效率低下,因为在不知道
数据
的情况下,在最后一次读取的情况下需要等待到超时才会知道
数据
是否读取完毕。方案三使用fgetc,通过判断f...
linux
socket
清空
缓存
区
情况一:知晓
缓存
区
中
数据
的大小 这种情况应该就不用多说了,直接循环的把
数据
都读取出来就行了。 情况二:不知道
缓存
区
中
数据
的大小 方案一 close一次
socket
,这个方案有效是有效,但这样的小问题还不至于如此大动干戈,因此不建议使用。 方案二 使用recv来读取,但是在阻塞模式下效率低下,因为在不知道
数据
的情况下,在最后一次读取的情况下需要等待到超时才会知道
数据
是否读取完毕。 方案...
网络编程
18,356
社区成员
64,214
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章