最近兩天發的博文較少。。因為這個例子太長啦。
下面引用下書上的話,來引導這個例子:
遊戲規則如下:
(1)玩家通過 internet 和 坐在同一桌的另外乙個玩家對弈,乙個玩家選擇黑方,另乙個玩家選擇白方。
(2)遊戲開始後,計算機自動在15x15的棋盤方格內,以固定的時間間隔,不停的在未放置棋子的位置隨機產生黑色棋子或白色棋子。
(3)玩家的目標是快速單擊自動出現在棋盤上的自己所選顏色的棋子,讓棋子從棋盤上小時,以避免自己的棋子出現在相鄰的位置。
(4)每當棋子從棋盤上小時,具有相應顏色的玩家既得1分。注意,如果玩家單擊了對方的棋子,則對方得1分。
(5)如果棋盤上出現兩個或者兩個以上相鄰的同色棋子,遊戲就結束了,改顏色對應的玩家就是失敗者。
遊戲功能要求如下:
(1)伺服器可以同時服務多桌,每桌允許兩個玩家通過internet 對弈。
(2)允許玩家自由選擇坐哪一桌的哪一方。如果兩個玩家坐在同一桌,雙方應都能看到對方的狀態。兩個玩家均單擊『開始』按鈕後,遊戲才開始。
(3)某桌遊戲開始後,伺服器以固定的時間間隔同時在15x15的棋盤方格內向該桌隨機地傳送黑白兩種顏色的棋子的位置,客戶端程式接收到伺服器傳送的棋子位置和顏色後,在15x15棋盤相應的位置顯示棋子。
(4)玩家坐到遊戲桌座位上後,不論遊戲是否開始,該玩家都可以隨時調整伺服器傳送棋子位置的時間間隔。
(5)遊戲開始後,客戶端程式響應滑鼠單擊,並根據遊戲規則計算玩家的得分。
(6)如果兩個相同顏色的棋子在水平方向或垂直方向是相鄰的,那麼就認為這兩個棋子是相鄰的,這裡不考慮對角線相鄰的情況。
(7)如果相同顏色的棋子出現在相鄰的位置,本局遊戲結束。
(8)同一桌的兩個玩家可以聊天。
這個遊戲雖然比較小,但卻是「麻雀雖小,五臟俱全」。如果讀者真正理解了編寫的方法,就可以輕鬆編寫其他各類基於tcp的應用程式。
(打字挺累的,一字一字的照著打下來的。)
上面介紹完了,下面直接上圖 傳**。。
另外有一點要說的是 這個程式(客戶端和服務端)已經測試過了。
並不是很完美,但是並不影響學習socket tcp程式設計。挺不錯的乙個例子。
先上圖吧,不嘮叨了。
圖為兩個客戶端和乙個服務端執行的狀況。。。
注:再次說下,關於**的是否完美,這裡不作討論。僅用於學習socket程式設計
遊戲伺服器程式設計
參考書籍 linux 多執行緒伺服器端程式設計 網路遊戲伺服器程式設計 unix網路程式設計 鳥哥的linux私房菜 unix環境高階程式設計 developing online games cnv1 cnv2 ice我參與專案已經用了ice,比ace corba這樣的中介軟體簡單。1 linux系...
C Socket實現Http WEB伺服器
c socket實現http web伺服器 2010年03月22日 www的工作基於客戶機 伺服器計算模型,由web 瀏覽器 客戶機 和web伺服器 伺服器 構成,兩者之間採用超文字傳送協議 http 進行通訊,http協議的作用原理包括四個步驟 連線,請求,應答。根據上述http協議的作用原理,本...
《網路遊戲伺服器程式設計》
fd clr s,set removes the descriptor s from set.fd isset s,set nonzero if s is a member of theset.otherwise,zero.fd set s,set adds descriptor s to set....