c++ - Socket 通信中如何清除接收区缓存?
高洛峰
高洛峰 2017-04-17 13:17:43
[C++讨论组]

大家好

我是初次使用C++ Socket编程,在网上找到了很多这方面的样例
例如 http://www.cnblogs.com/Sniper-quay/archive/2011/06/22/2086636.html
现在有一个问题是,它需要每次关闭套接字
如果不关闭的话,我会出现以下问题

我建立了一个应答系统,客户端向服务器端发送触发指令:Trigger On
服务器端响应一个处理结果:Process 0001 OK
然后客户端调用receive函数接收到处理结果:Process 0001 OK

问题是,服务器端可以独立处理,但是它每次处理完都会向客户端发送信息,不管客户端是否有触发指令或者接收

例如:服务器端自行处理5次,它会自动向客户端发送五次处理结果

    Process 0020 OK
    Process 0021 OK
    Process 0022 OK
    Process 0023 OK
    Process 0024 NG
    

此时客户端发送触发指令:Trigger On
调用接收函数receive
客户端接收到的数据为:

    Process 0020 OK
    Process 0021 OK
    Process 0022 OK
    Process 0023 OK
    Process 0024 NG
    Process 0025 NG   
    

我的问题是,在客户端发送Trigger On 触发指令之前,我如何清除掉接收区缓存

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
黄舟

没有什么清理缓存的函数,在发送之前 读出来 然后丢掉就是了

参考:

http://stackoverflow.com/questions/22268130/flush-the-tcp-receive-data-buffer
http://developerweb.net/viewtopic.php?id=6564
https://www.quora.com/Is-there-a-way-to-clear-everything-thats-in-the-socket-buffer
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号