作者neigence ()
站內C_and_CPP
標題[問題] about win32 recv( )
時間Sat Oct 31 13:35:11 2009
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