看板 C_and_CPP 關於我們 聯絡資訊
: 而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
purpose:修正 send(sock, send_buf, send_size, 0); 10/07 02:22
paulyanzi:*buf=-1 若有改變 則繼續送17收 --> loop ? 來算時間 10/07 03:09
我不知道你要算的所謂時間,其定義到底是什麼。 當你有從 Server 端收到資料時,對方會關閉此次連線,你的 Client 端程式要重新 呼叫 connect() 函數,等對方 accept(),也就是再次建立與你的連線後,再去送一次 17 使對方知道要進行傳送資料的測試並且再次 send() 一筆 1460 大小的資料給你。 Server 程式運作流程就是這樣,我從執行檔反組譯觀察出來的。 告訴你流程了,你想幹嘛就幹嘛吧
paulyanzi:http://codepad.org/6uiJZNUn 10/07 18:54
paulyanzi:欄封包是出現這個 10/07 18:54
我不知道你貼這是什麼東西,也不知道什麼欄封包是什麼 -- 我嘛閱讀能力真的很差,如果你有要詢問我些什麼,麻煩把問題描述詳細,把可能有幫助 的所有資訊盡力提供出來。 ※ 編輯: purpose 來自: 124.8.131.140 (10/07 19:10)