C socket遊戲程式設計(1伺服器,多客戶端)

2021-08-26 01:21:36 字數 1151 閱讀 7487

最近兩天發的博文較少。。因為這個例子太長啦。

下面引用下書上的話,來引導這個例子:

遊戲規則如下:

(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....