看板 C_and_CPP 關於我們 聯絡資訊
HELLO 最近在vc上開發socket通訊 使用到windows 的 recv(SOCKET s, char* buffer,int bufferSize,int flag) 想請問的有2個問題 1.假設server端丟某個訊息過來 , 而我client端用上述的recv來接受訊息 假如server丟的訊息長度高達1024byte,如果我沒有誤解的話 recv是有可能收到500byte就返回的(未完整接受) 這部分該如何解決呢? 我自已的想法是 * 使用readline (如果系統沒有就自已包),而server丟的訊息會在結尾 加上\n。 2. 有沒有可能server連丟2個訊息,而我卻在一次recv中收到2個訊息? 意即server send "aaa" 然後 send "bbb" 結果我一次recv就收到"aaabbb"? 我是猜不太可能這樣... 不過我實在不確定 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.113.159.167
remmurds:第一個問題:自己做切割 超過buffer大小的分開來傳送 10/31 15:46
remmurds:並且在傳送的資料前加入一些自訂的訊息 好讓client端 10/31 15:46
remmurds:可以判斷目前收到哪個部份 10/31 15:47
remmurds:第二個問題:以我的經驗是不會有這種情況的 頂多收到的順 10/31 15:47
remmurds:序有可能不同 server端先送aaa有可能會先收到bbb 10/31 15:48