(⊙o⊙)…貌似自己已經有一段時間沒有寫部落格了,其實主要原因還是覺得自己水準有限,加上上班實在是太忙,實在抽不出時間來寫部落格。言歸正傳,大家都知道,在網絡遊戲開發中,
網絡通信一直是個比較大的難題,一個伺服器可能要同時處理幾千上萬甚至上百萬的使用者資料,當然,僅僅是通信那是比較簡單,但要設計到一個很好的通信架構确實還是比較難的,當然這些設計結構不是這篇博文的内容,哈哈,隻是實作cocos2d-x用戶端和Java服務端的一個連接配接而已,至于兩端的資料傳輸暫時不說,^_^
首先,我們需要ODSocket這個類,至于這是什麼個東西,大家可以執行google.
//----------server [ Java ] --------------------------
package com.socket;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketDemo{
public static void main(String[] args) {
test();
}
private static void test()
{
ServerSocket serverSocket = null;
Socket socket = null;
try {
System.out.println("ServerStart....");
serverSocket = new ServerSocket(9999);
socket = serverSocket.accept();
System.out.println("Connect success...");
serverSocket.close();
socket.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
// ---------------------------- Client [C++/cocos2dx] ------------------------------
這裡的用戶端我就是建了一個Cocos2dx工程,然後将menuCloseCallback函數改成連接配接功能(如下)而已,\(^o^)/~
ODSocket* socket = new ODSocket();
socket->Init();
socket->Create(AF_INET,SOCK_STREAM,0);
bool isConnet = socket->Connect("127.0.0.1",9999);
LabelTTF* label = dynamic_cast<LabelTTF*>(getChildByTag(TAG_LABEL));
if (NULL != label)
{
if (isConnet)
{
label->setString("connect success!");
label->setColor(ccGREEN);
}
else
{
label->setString("connect failed!!");
label->setColor(ccRED);
}
}
運作截圖:
1.伺服器啟動:
2.用戶端開啟-預設狀态(看到這個界面大家是不是覺得很親切哇哈哈~):
3.點選右下角的關閉按鈕進行連接配接
4.連接配接成功,一次Socket連接配接成功完成,哇咔咔!!
好了,本博文的内容就是那麼簡單,大俠們勿噴!!!