有幾個套接字問題,並且找不到明確的是或否,所以如果它是轉發,請提前道歉:)平臺是Linux 2.6.30,C++應用程序。網絡還很新,即將加速。套接字問題
套接字API線程是否安全?例如,如果我在不使用互斥鎖的情況下從多個線程發送數據,還是必須使用自己的互斥鎖確保這一點?
輪詢/選擇以檢查我的發送是否會阻止然後發送,而不僅僅是發送並讓發送API內部排隊處理髮送是否更好?如果線程無論如何會阻塞(如果我不使用超時,那是),我真的不明白爲什麼需要發送後跟一個發送。
在Linux中,套接字是否默認爲零拷貝,或者是否存在涉及的副本?如果存在副本(不是以API的形式,而是以粒度的形式),是否有大小限制?如果答案是內核確實做了副本,是否有零拷貝套接字?
如果我必須在兩臺機器之間進行通信,我會假設多個套接字將比單個套接字使用更好的帶寬。這是一個正確的假設嗎?在兩臺普通的Linux機器之間使用全部BW的最佳方式是什麼?
5.你最喜歡的測量接口上當前帶寬使用情況的工具是什麼?這可能只是一個偏好,我看着iptraf等,但希望看到別人使用和喜歡的東西。