請問Socket SendText的問題? |
尚未結案
|
melticemelt
一般會員 發表:22 回覆:29 積分:10 註冊:2002-10-01 發送簡訊給我 |
|
geniustom
版主 發表:100 回覆:303 積分:260 註冊:2003-01-03 發送簡訊給我 |
melticemelt 您好..關於這個問題..有一個很好的方法可以解決
那就是..
1..您宣告一個字串變數來當作BUFFER... 2..CLIENT端送出資料時..可加上一組2BYTE的結束字元(挑一些不常用的..例如#0A #1B) 3..您的SERVER端..當收到封包時..先把它丟進BUFFER中.. 4..當CLIENT端送資料時..SOCKET有可能依次收到多筆..觸發同一個事件.. 5..這時..應該會有某些封包是斷的..或是傳到一半的.. 6..您的SERVERSOCKET收到資料時...除了先將收到的資料丟入BUFFER..還要取出【合法】的封包 就是封包沒有斷掉的.. 7..SERVER端收BUFFER..分割BUFFER..可以使用TSTRING來處理..把目前收到的一組(或很多組).. 以#0A #1B為分隔字元..將封包變成一段一段完全正確的封包 8..然後這時才真的去讀封包..做您想做的事.. 用這種方法..就可以保證資料不LOSE..不亂掉... 另外..也建議不要使用BLOCKING來做..因為會很慢..當很多人同時連線時就掛了... 我之前寫過一個小型的線上遊戲..用ADSL..可以容納2~30人沒問題.. 用的就是這種機制..您參考看看吧GOOD LUCK =程式是一種藝術 也是訓練自己的分析規劃= =是段落分明 或是雜亂無章= =是一言以敝 或是廢話連篇= =是一目了然 或是艱深難懂= 體會這份藝術 您會了解另一份喜悅與成就 |
melticemelt
一般會員 發表:22 回覆:29 積分:10 註冊:2002-10-01 發送簡訊給我 |
|
melticemelt
一般會員 發表:22 回覆:29 積分:10 註冊:2002-10-01 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |