C# 如何通过TcpClient和TcpListener发送对象?

C# 如何通过TcpClient和TcpListener发送对象?,c#,.net,sockets,tcp,network-programming,C#,.net,Sockets,Tcp,Network Programming,好的,我正在.NET中开发一个非常简单的多人游戏,可以在局域网上玩 问题是为了让游戏运行,我必须发送整个对象。之前,我使用TcpClient和TcpListener发送消息,制作了一个聊天系统。但是,我不确定在这种情况下发送对象是可能的,甚至是可取的 在搜索时,有人建议使用序列化。然而,在一些研究中,我发现其对象被序列化对象引用的所有类也必须被序列化。现在,我必须发送的对象包含了许多对其他对象的引用。为了使用序列化,我必须实际上序列化程序中的几乎每个类 现在我不知道该用哪种方法TcpClient

好的,我正在.NET中开发一个非常简单的多人游戏,可以在局域网上玩

问题是为了让游戏运行,我必须发送整个对象。之前,我使用
TcpClient
TcpListener
发送消息,制作了一个聊天系统。但是,我不确定在这种情况下发送对象是可能的,甚至是可取的

在搜索时,有人建议使用序列化。然而,在一些研究中,我发现其对象被序列化对象引用的所有类也必须被序列化。现在,我必须发送的对象包含了许多对其他对象的引用。为了使用序列化,我必须实际上序列化程序中的几乎每个类


现在我不知道该用哪种方法
TcpClient
或序列化或其他什么?

您可以通过创建WCF项目来发送对象。您需要修改对象,使其成为DataContract,但这可以使生活更加轻松,因为在调用Web服务后,您不需要进行任何进一步的处理。

您需要为客户端和服务器设计一个有线协议:一组规则,不仅可以序列化(Web服务的必要部分)对象,并在另一端将其取回,但还包括使接收方能够解析来自服务器的数据的规则。这是必要的,因为TCP是一种流协议,没有“自包含消息”的概念。我不确定我是否在关注你。很可能你需要阅读文章而不是在这里提问,有太多的事情要解释。从发送值映射这样的简单示例开始,并将对象留待以后使用。