[ 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