cocos2d-x客戶端與Java服務器的通信(一)

(⊙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連接成功完成,哇咔咔!!


好了,本博文的內容就是那麼簡單,大俠們勿噴!!!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章