2013-06-20 39 views
0

好的,我正在用.NET開發一個非常簡單的多人遊戲,它將在局域網上播放。如何通過TcpClient和TcpListener發送對象?

問題是,爲了讓遊戲起作用,我必須發送整個對象。以前,我通過使用TcpClientTcpListener發送消息來建立聊天系統。但是我不確定發送對象在這種情況下是可能的甚至是可取的。

雖然搜索SO有人建議使用序列化。然而,在一些研究中,我發現所有其對象被序列化對象引用的類也必須被序列化。現在,我必須發送的對象包含對其他對象的相當多的引用。使用序列化的含義我必須事實上序列化程序中幾乎所有的類。

現在我不確定使用哪種方法。 TcpClient或序列化或別的東西?

+0

您需要爲您的客戶端和服務器設計一個* wire協議:一組規則,不僅可以將對象的序列化(對象的必要部分)並讓它們返回到另一端,還可以使接收器能夠解析來自服務器的數據。這是必要的,因爲TCP是一個流協議,並沒有「自包含消息」的概念。 – Jon

+0

不確定我是否關注你 –

+1

很可能你需要閱讀文章而不是在這裏提問,有太多東西需要解釋。從簡單的例子開始,例如發送值的地圖,稍後留下對象。 – Jon

回答

0

您可以通過創建一個WCF項目來發送對象。您將需要修改對象以使它們成爲數據合同,但它可以使生活變得更加輕鬆,因爲在調用Web服務之後不需要進行任何進一步的處理。