我的工作使用典型的套接字API在Linux平臺上用C編寫網絡應用++,和我在看寫的2種替代方法一個字節數組到TCP流:通過調用write()或調用send()。我知道,因爲這是Linux,所以套接字句柄只是一個文件描述符,因此在套接字上執行read()和write()調用是有效的,但是套接字API也提供了send()和recv )功能執行相同的任務。性能影響寫入套接字時()
我因此想知道是否有任何特別的理由去選擇一個類的功能比其他 - 被髮送/ recv的功能網絡寫入/讀取優化,做他們表現得更好,等等?或者它真的是任意使用哪些功能?在所有情況下,read()和write()的行爲是否正確?
感謝您的見解!
FreeBSD或其他平臺也是如此嗎? - 該行不會出現在我的send(2)手冊頁中。 – 2014-03-18 23:34:03
@GoodPerson它適用於所有平臺。如果不是這樣,`inetd`之類的將不起作用。 (`inetd`把你的套接字放進你的守護進程的標準輸入和標準輸出中,你的進程可以用正常的方式直接與標準輸入和標準輸出進行交互,而不必知道它們是套接字。當然,你也可以使用套接字。 ) – 2014-11-29 06:43:39