[ CN ] socket的read&write
請問助教,
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);
--取出bufB的東西--
read(sockfd, bufB, 64);
這樣能完整讀到clientA傳的資料嗎?
或是第二次read讀不到東西?
2.clientA將128Byte的資料分兩次傳出:
write(sockfd, bufA, 64);
--更新bufA--
write(sockfd, bufA, 64);
clientB用128Byte的buffer去讀(假設此時資料已全部傳到B處):
read(sockfd, bufB, 128);
這樣能讀到完整的資料嗎?
還是一定只能讀到第一次write的東西?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.217.36
→
10/27 22:10, , 1F
10/27 22:10, 1F
→
10/27 22:12, , 2F
10/27 22:12, 2F
推
10/27 22:24, , 3F
10/27 22:24, 3F
推
10/27 22:25, , 4F
10/27 22:25, 4F
推
10/27 22:25, , 5F
10/27 22:25, 5F
→
10/28 18:01, , 6F
10/28 18:01, 6F