Re: [問題] socket接收 與 multithread 問題
: 而server 送給 client 接收這段
: 查詢封包後確實該server程式有送東西出來(一千多個bytes)
: 但是使用 numbytes = recv(sockClient, (char *) buf, sizeof(buf), 0);
: 似乎沒收到資料,
: 該如何實作才能正確接收到資料呢?
有收到資料。
對方 (Server端) 的行為很簡單。
初始設定
char *send_buf = malloc(1600);
int send_size = 1460;
在 accept 你客戶端的連線後,接收你的第一筆整數值,判斷出該值為 17 時,
則對方會做一次資料傳送給你客戶端,送完他就會 closesocket
也就是 send(sock, send_buf, 1460, 0);
檢驗方法很簡單,你先把你的接收 buffer 全部設值為 -1,檢查接受完是不是變了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.8.143.12
→
10/07 02:22, , 1F
10/07 02:22, 1F
→
10/07 03:09, , 2F
10/07 03:09, 2F
我不知道你要算的所謂時間,其定義到底是什麼。
當你有從 Server 端收到資料時,對方會關閉此次連線,你的 Client 端程式要重新
呼叫 connect() 函數,等對方 accept(),也就是再次建立與你的連線後,再去送一次
17 使對方知道要進行傳送資料的測試並且再次 send() 一筆 1460 大小的資料給你。
Server 程式運作流程就是這樣,我從執行檔反組譯觀察出來的。
告訴你流程了,你想幹嘛就幹嘛吧
→
10/07 18:54, , 3F
10/07 18:54, 3F
→
10/07 18:54, , 4F
10/07 18:54, 4F
我不知道你貼這是什麼東西,也不知道什麼欄封包是什麼
--
我嘛閱讀能力真的很差,如果你有要詢問我些什麼,麻煩把問題描述詳細,把可能有幫助
的所有資訊盡力提供出來。
※ 編輯: purpose 來自: 124.8.131.140 (10/07 19:10)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章