我繼承了一些使用MSG_CONFIRM作爲send()中的標誌的套接字代碼。 send()的手冊頁似乎說MSG_CONFIRM只適用於UDP套接字。這是一個使用TCP協議的AF_UNIX套接字。MSG_CONFIRM和TCP
沒有MSG_CONFIRM標誌我得到「資源暫時不可用」的send()。
MSG_CONFIRM在這種情況下意味着什麼......使用TCP協議的AF_UNIX套接字?
我繼承了一些使用MSG_CONFIRM作爲send()中的標誌的套接字代碼。 send()的手冊頁似乎說MSG_CONFIRM只適用於UDP套接字。這是一個使用TCP協議的AF_UNIX套接字。MSG_CONFIRM和TCP
沒有MSG_CONFIRM標誌我得到「資源暫時不可用」的send()。
MSG_CONFIRM在這種情況下意味着什麼......使用TCP協議的AF_UNIX套接字?
在嘗試發送之前,我用AF_UNIX套接字拋棄了MSG_CONFIRM並在POLLOUT上輪詢。我也結束了離開套接字和相關的send()的非阻塞。現在工作正常。
*發送之前輪詢POLLOUT *是浪費時間。套接字通常是可寫的。當發生EAGAIN/EWOULDBLOCK發送錯誤時,您應該只使用POLLOUT。這與MSG_CONFIRM沒有任何關係。 – EJP
相關信息:http://stackoverflow.com/questions/16594387/why-should-i-use-or-not-use-msg-confirm – Barmar