作者CMJ0121 (請多指教!!)
看板C_and_CPP
標題[問題] telnet封包
時間Mon Apr 5 06:27:37 2010
我目前在實作telnet bot的程式
雖然bug還是很多
不過我在處理封包上有個問題
因為我不能確定server送過來的封包 一次就送完了
e.g.一個畫面 可能一個封包/十幾個封包送
也可能兩個封包間 間隔0.X秒~1X秒
這要取決我/server的網路速度跟處理速度
那我要怎麼判斷我目前處理完的資料 是已經送完的~
像是我這邊文章 我收到的封包處理完之後
得到一個80*24的畫面 但是我不能保證這時候的畫面
已經是正確版本 可能下半部的資料server還沒丟過來?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.152.107
1F:→ softwind:1.錄封包 直接觀察最後一筆pkt 2.去讀spec. 04/05 08:39
2F:→ tinlans:這種程式不能等「送完封包」才做判斷,一邊收一邊判斷吧。 04/05 08:47
3F:→ softwind:不過 我在ruby上寫 他是會block住 直到收到最後一包才ret 04/05 08:48
4F:→ softwind:so 我猜啦 應該是收到某個signal後 就算差不多了 04/05 08:50
5F:→ tinlans:就算有那種東西,server 端實作未必要支援,要是它什麼都 04/05 08:53
6F:→ tinlans:給你回 IAC WON'T,那也不能假設它會送。 04/05 08:53
7F:→ tinlans:結果還是收一次判斷一次最保險,跟累積的 buffer 一起合併 04/05 08:54
8F:→ tinlans:判斷。 04/05 08:54