【问题标题】:How to send objects through TcpClient and TcpListener?如何通过 TcpClient 和 TcpListener 发送对象?
【发布时间】:2013-06-17 02:31:30
【问题描述】:

好的,我正在用 .NET 开发一个非常简单的多人游戏,可以在 LAN 上玩。

问题是为了让游戏正常运行,我必须发送整个对象。以前我用TcpClientTcpListener 制作了一个聊天系统来发送消息。但是我不确定在这种情况下发送对象是可能的还是可取的。

在搜索 SO 时,有人建议使用序列化。然而,经过一些研究,我发现其对象被序列化对象引用的所有类也必须被序列化。现在我必须发送的对象包含很多对其他对象的引用。使用序列化的意义我必须对程序中的几乎每个类进行序列化。

现在我不确定使用哪种方法。 TcpClient 或序列化或其他?

【问题讨论】:

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

标签: c# .net sockets tcp network-programming


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-10-04
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-06
    相关资源
    最近更新 更多