C的TCP连接中如何判断当前端口的收发状态

来源:百度知道 编辑:UC知道 时间:2024/06/25 12:06:26
假如我想让SOCKET sck发送数据,前提是其发送状态正常(即现在没有在发送数据),如何得知这一状态?

如果是同步套接字的时候。你可以在发送(或接收)后向主线程发送一个消息,通知现在套接字可用。或者专门设定一个标志位,比如int flag;0是空闲,1是正在发送,-1是正在接收。每次进行套接字操作前先设置标志,操作完成后释放标志。
如果是异步套接字,只要判断该套接字是否刻度可写可以参考
http://bbs.scut.edu.cn/classic/threadContent.jsp?threadID=294768&forumPageNum=1

我想, TCP是面向流的,你把东西交给它发,它向你保证可靠传达(除非链接失效从而失败),至于是否拥堵,是否正在发送数据,是不需要编写应用程序的程序员关心的。
讨论讨论,说错别骂我。 :)

socket创建成功后,当做传送数据函数(如:read() write())的参数。然后根据传送数据函数都返回值来判断是否传送成功。成功情况下是返回传送都字节数。