|
|
30 | 31 | 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 | 9 | 10 |
E-mail:zbln426@163.com
QQ:85132383
長期尋找對戰(zhàn)略游戲感興趣的合作伙伴。
常用鏈接
留言簿(21)
隨筆分類
隨筆檔案
SDL相關網(wǎng)站
我的個人網(wǎng)頁
我的小游戲
資源下載
搜索
積分與排名
最新評論

閱讀排行榜
評論排行榜
摘要: 我們將UDP版的doEcho()也設計成返回bool:true表示循環(huán)繼續(xù);false表示關閉客戶端。
閱讀全文
posted @
2010-06-12 12:11 lf426 閱讀(3711) |
評論 (2) |
編輯 收藏
摘要: 這里跟TCP有些細微的差別。在TCP中,recv()返回0表示連接正常斷開,而UDP中沒有連接和斷開的概念,recv()或者recvfrom()返回0表示收到一個0字節(jié)大小數(shù)據(jù)的數(shù)據(jù)報。另外,因為TCP是一對一連接的,所以一旦連接上,TCP服務器只能處理來自一個客戶端的echo請求(后面會講到多線程的使用,就可以讓TCP同時處理多個客戶端了);而UDP服務器則可以處理來自任何客戶端的echo請求,為了返回信息到正確的客戶端,我們的策略是,接收一個UDP數(shù)據(jù)包后,馬上刷新發(fā)送目標地址為上一次接收地址,然后再回發(fā)數(shù)據(jù),所以這里每次多了一個重新指定發(fā)送目的地的函數(shù)。
閱讀全文
posted @
2010-06-12 11:16 lf426 閱讀(2488) |
評論 (2) |
編輯 收藏
摘要: 因為UDP是按數(shù)據(jù)包接收的,我們在接收之前并不知道這個數(shù)據(jù)包有多大。一個策略是,我們準備足夠大的應用程序緩存以免出錯,但是這個“足夠大”的概念是建立在我們對傳送的數(shù)據(jù)事先有了解的情況下,比如是我們自己設計服務器端和客戶端并且制定應用層協(xié)議;另外一種策略是,將一個數(shù)據(jù)包的相關信息記錄在數(shù)據(jù)包的前面的一些字節(jié)中,比如說大小,這樣,我們可以通過預讀數(shù)據(jù)包的前面一段,得到這個數(shù)據(jù)包的相關信息,比如說大小,然后再安排緩存。
閱讀全文
posted @
2010-06-11 13:30 lf426 閱讀(5413) |
評論 (1) |
編輯 收藏