魔獸是遊戲資料傳輸時基於tcp連線,此時主機作為tcp的服務端,非主機是客戶端。但是沒辦法在internet上實現兩個非伺服器主機之間的直接tcp連線(這個可以看p2p的實現原理)。那對戰平台是怎麼實現在internet上通過war3的區域網模式連線對戰的呢?
簡單來說是如果a建了乙個主機,b要進a的主機,a通過平台**過來的訊息知道b要連線主機,就在自己本地建立乙個tcp的客戶端,讓這個客戶端與war程序的服務端連線,在魔獸中就相當於有玩家b連線進a主機建立的遊戲,同時b主機在自己本地建立乙個tcp服務端,讓war程序的tcp客戶端連線到自己本地的服務端。既然都是在本地建立的tcp連線,那麼怎麼實現主機和非主機的遊戲資料交換的呢??
從上面的圖可以看出,war3主機和非主機的資料交換,其實是在兩個本地模擬建立的tcpsever和tcpclient之間進行的,當主機有資料要發給非主機,先會將資料發給主機本地的tcpclient,然後對戰平台會從tcpclient資料緩衝池中取出資料,通過udp的方式,發給非主機,非主機會將udp資料放入tcpserver的傳送資料緩衝池,由它發給魔獸程序中的tcpclient,反過來一樣,這樣就實現了魔獸資料的完成傳輸,internet上的聯網對戰也就實現了。
另外說一下t人掛的原理,為什麼主機可以t人呢?為什麼主機只是關閉本機的tcp連線就可以把遠端的非主機玩家t出遊戲呢?從上圖我們應該可以獲得答案。如果主機關閉了本地用來接受遠端非主機傳輸的udp資訊的那個tcpclient,那麼很顯然,主機將不能獲得這個非主機資訊,遠端的那個非主機也不能收到主機**的遊戲資料報了,這個時候這個非主機war3程序理所當然的認為自己與主機失去了連線,t人掛的目的也達到了。
WAR3攻防屬性表
攻擊型別 普通 絕大多數的肉搏單位 普通攻擊對中型裝甲造成額外傷害,但對加強型盔甲的傷害會折損。穿刺 大部分遠端攻擊者 穿刺攻擊對無裝甲單位以及輕甲單位造成額外傷害,但是對加強型裝甲,中型裝甲,英雄裝甲的傷害會折損。攻城 火炮攻擊 攻城攻擊對加強型裝甲以及無裝甲造成額外傷害,對中型以及英雄裝甲的傷害...
Sky中國War3的旗幟
6時38分,這個21歲的年輕人坐在贊助的主機和贏來的顯示屏旁發表了一篇新的部落格,表達了他對新的一年的展望 加油,努力,自信,堅持,拼搏!不到正午時分,這篇短短的部落格已被閱讀了近2000次,100多個粉絲留下了祝福和期許。乙個他盼望已久的春節就這樣過去了,他又要收拾行裝,離開老家河南汝州,投入到緊...
War3快捷鍵大全 HUM
建築 b 城鎮大廳 h 農民 p 戰鬥號召 c 回到工作 w 戰鬥號召 c 回到工作 w 兵營 b 步兵 f 防禦 d 火槍手 r 騎士 k 研究防禦 d 公升級到長管火槍 l 研究動物作戰訓練 a 伐木場 l 改進型伐木效率 l 公升級到加強石工技術 m 鐵匠鋪 s 鐵劍術 s 鐵甲 p 黑火藥 ...