[問題] telnet封包

看板C_and_CPP (C/C++)作者 (請多指教!!)時間16年前 (2010/04/05 06:27), 編輯推噓0(008)
留言8則, 2人參與, 最新討論串1/1
我目前在實作telnet bot的程式 雖然bug還是很多 不過我在處理封包上有個問題 因為我不能確定server送過來的封包 一次就送完了 e.g.一個畫面 可能一個封包/十幾個封包送 也可能兩個封包間 間隔0.X秒~1X秒 這要取決我/server的網路速度跟處理速度 那我要怎麼判斷我目前處理完的資料 是已經送完的~ 像是我這邊文章 我收到的封包處理完之後 得到一個80*24的畫面 但是我不能保證這時候的畫面 已經是正確版本 可能下半部的資料server還沒丟過來? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.152.107

04/05 08:39, , 1F
1.錄封包 直接觀察最後一筆pkt 2.去讀spec.
04/05 08:39, 1F

04/05 08:47, , 2F
這種程式不能等「送完封包」才做判斷,一邊收一邊判斷吧。
04/05 08:47, 2F

04/05 08:48, , 3F
不過 我在ruby上寫 他是會block住 直到收到最後一包才ret
04/05 08:48, 3F

04/05 08:50, , 4F
so 我猜啦 應該是收到某個signal後 就算差不多了
04/05 08:50, 4F

04/05 08:53, , 5F
就算有那種東西,server 端實作未必要支援,要是它什麼都
04/05 08:53, 5F

04/05 08:53, , 6F
給你回 IAC WON'T,那也不能假設它會送。
04/05 08:53, 6F

04/05 08:54, , 7F
結果還是收一次判斷一次最保險,跟累積的 buffer 一起合併
04/05 08:54, 7F

04/05 08:54, , 8F
判斷。
04/05 08:54, 8F
文章代碼(AID): #1BkH9S2R (C_and_CPP)
文章代碼(AID): #1BkH9S2R (C_and_CPP)