[ CN ] socket的read&write

作者: penknife211 (男三211)   2012-10-27 17:12:32
請問助教,
socket在傳資料的時候,
是不是一個read對應到一個write?
有沒有可能一次write的資料分兩次來read?
或一次read到兩次write的資料?
例如:
1.clientA一次在sock中寫入128Byte的資料:
write(sockfd, bufA, 128);
clientB讀取socket用的buffer只有64Byte
bufB[64];
read(sockfd, bufB, 64);
作者: a13032002 (果子狸)   2012-10-27 22:10:00
read應該是一有東西不管長度有沒有到就return了?要確保讀到一定的長度似乎要用recv加上MSG_WAITALL(?)
作者: simonxander (顯顯)   2012-10-27 22:24:00
你所舉的例子都是可以收到資料的不過 read 的第3個參數是指"最多"讀幾個byte並不是讀到幾個byte後停止
作者: penknife211 (男三211)   2012-10-28 18:01:00
助教謝謝!

Links booklink

Contact Us: admin [ a t ] ucptt.com