- 论坛徽章:
- 1
|
请问要清空串口的buffer该用什么函数?谢谢!
关于你清空socket的想法。我觉得是无法做到的。
因为socket的buffer是在内核中,而且都自己的buffer策略,在buffer中存的并不一定都是
你要发送的完整的包,我想这也许是不允许野蛮清空的原因之一。
控制socket的系统调用无非是ioctl和setsockopt,我查了没有这方面的选项。
呵呵,如果有,我想也是没公开的, 。
给你个链接,也许你就对socket的buffer会有更深的了解。
http://www.developerweb.net/sock-faq/detail.php?id=406
文件的buffer稍有不同,但是到了内核的buffer,原理是一样的。
而且我觉得你的问题完全可以在应用层解决,并不一定要用很底层的方式。
例如,客户端,你每个包,可以设个retry的次数,大于某次,就不重复发送了。如果总的次数超过,某个
上限,就停止发送,将请求放在自己维护的队列中。至于服务端,接收到重复的,就可以忽略。
串口的操作策略也是一样的,总不能发不出去,还发吧?
至于发了多少次,服务器就退出了,我想有几种可能:
1.服务器重试超过上限,自动退出
2.在极限情况下,出现异常退出。
这就得具体分析了。 |
|