【问题标题】:Send object via TCP/IP通过 TCP/IP 发送对象
【发布时间】:2012-02-29 20:56:52
【问题描述】:

大家。我有一个非常简单且没有一次重复的问题:) 主要思想是: 我必须使用 C# 通过 TCP/IP 发送我描述的类/结构的对象。我已经成功使用 TCPListener 和 TCPClient 类并且能够发送消息(字符串)。但是在我开始练习序列化等之后,我的成功经验就结束了。在写这里之前,我已经阅读了很多东西,真的,甚至是关于编组选项和其他奇怪的东西,但我不明白,我认为它没有必要。所以,我向你们提出的问题,如果你们给我一个例子,那将是非常高兴的。

类示例:

[SERIALIZABLE]
public class SomeClass
{
   public SomeClass(){}

   private int SomeIntData;
   private Int32 SomeInt32Data;
   private Double SomeDoubleData;
}

请告诉我如何通过 tcp/ip 发送此类 SomeClass 的对象。谢谢。

【问题讨论】:

  • 我不确定您是否使用 WCF,但是在 WCF 中通过网络发送业务对象,必须在客户端和服务器之间以 wsdl 文件的形式共享合同。
  • 我认为您自己滚动而不使用某些 RPC / 远程处理框架(例如 WCF)是有原因的?
  • 有一个类似雷达系统的系统。并且服务器部分已经存在。我需要重新制作旧的客户端部分并以新的方式放置我想从输出对象中获得的变量。而且我不想重新制作所有的东西,只是客户端部分的一些东西,比如套接字等等。

标签: c# sockets object tcp


【解决方案1】:

为其添加[Serializable] 属性,然后使用BinaryFormatter 对其进行格式化

使用Serialize 将对象序列化为流,并使用Deserialize 在另一端创建它。

【讨论】:

  • 问题是我以前从未使用过网络连接。我现在如何序列化。但是,如果你给我一个代码示例,它描述了将对象放入流中并接收它,那就太棒了。如果我做stream.Write(data, 0, data.Length); 可以吗,其中data 是序列化对象?
  • 您直接序列化为流 - 您将流传递给序列化。你不需要做任何其他事情。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-17
  • 1970-01-01
  • 2014-06-05
  • 2016-05-12
  • 2016-07-31
  • 2018-10-24
  • 1970-01-01
相关资源
最近更新 更多