Re: [問題] recv的問題,不知道檔案大小
看板C_and_CPP (C/C++)作者tarjan (Mr. Everything)時間16年前 (2010/06/04 20:02)推噓0(0推 0噓 2→)留言2則, 1人參與討論串2/2 (看更多)
※ 引述《gemhung (deji394su3 )》之銘言:
: ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 )
: ( 未必需要依照此格式,文章條理清楚即可 )
: 遇到的問題: (題意請描述清楚)
: 請問各位一個問題,就是我在 linux 寫了一個 server 要recv檔案
: 但是檔案大小並不知道,因為如果用一個while去接收的話,
: 好像會因為 blocking 的關係,就收了幾次之後 client已經send完了,
: 但是server 還是 recv 會 hang在那邊不動了。
: 請問要怎麼做才好阿.... socket 我是新手....Orz
: 希望得到的正確結果:
: 程式跑出來的錯誤結果:
: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
: Linux
: 有問題的code: (請善用置底文標色功能)
: 補充說明:
比較常見的作法是把你的封包分成四個部份
-------------------------------------
| StartTag | Header | Body | EndTag |
-------------------------------------
其中StartTag, Header, EndTag的部份長度固定, Body長度可變
然後在Header中紀錄Body的長度
收的時候先收StartTag的長度, 再收Header的長度
計算出Body的長度以後再收Body的長度, 最後收EndTag的長度
嚴謹一點就從StartTag開始判斷, 如果開頭不是StartTag就當收到空氣
最後收到EndTag代表這個封包結束
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.33.204.235
→
06/04 20:17, , 1F
06/04 20:17, 1F
→
06/04 20:17, , 2F
06/04 20:17, 2F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章