2013-07-21 157 views
1

我有幾個問題關於套接字,我搜索但找不到直接的答案。連接在登錄服務器,轉發到世界服務器

我有一個登錄服務器和一個世界服務器。我從TcpClient to the TcpListener連接login server。我想both a Tcp and a Udp connection on the world server,所以一旦檢查登錄,我使用TcpClient.ConnectTcpClient重定向到世界服務器。

經過這個過程,我告訴客戶端通過Udp to the login server連接,然後使用Socket.Connect再次轉發到世界服務器。

我轉發而不發送客戶端消息給客戶端重定向的原因是,我只有want to expose the login server IP and port to the client

我對套接字沒有經驗,有沒有更好的方式來重定向而不暴露世界服務器IP和端口?

+0

我的理論今天下午進行了測試,並且光榮地失敗了。似乎我無法重定向服務器上的連接。我必須對此有一個重新思考,理論在那裏,但-1不是先測試.. –

回答

0

您可以在此頁面上查看圖像:http://next-gen.cc/

你要找的是將維護一個連接到客戶端插口和保持狀態的客戶端(連接,驗證,打一個連接服務器,斷開)。

一旦玩家登錄,連接服務器會向正確的遊戲服務器打開自己的套接字並將所有消息轉發到那裏,當遊戲服務器想要發送客戶端數據時,它會將其發送到連接服務器,將其發送給客戶端。 換句話說,使您的登錄/連接服務器在客戶端和您的遊戲世界之間起到路由器的作用。