在C#中向套接字发送信息

时间:2010-05-05 13:57:44

标签: c# networking sockets stream

我在C#中构建了两个程序,我通过套接字发送简单的字符串。目前这很好,但在不久的将来,我将需要发送更复杂的项目,例如插座中的对象和最终的文件。

我会采取什么步骤来做这件事?缓冲区用于套接字/流的目的是什么?如果我有点模糊,请道歉。

5 个答案:

答案 0 :(得分:1)

有很多选项,但基本上您希望将数据序列化为将通过套接字的格式。

值得一看xml序列化。

答案 1 :(得分:1)

如果您要发送对象,则必须非常小心您的操作以及如何计划在另一端使用这些对象。所有属性都需要序列化。如果要在这些对象中包含大量数据,则可能需要使用二进制序列化。

另外,请查看此处发布的指南:MSDN Serialization Guidelines

如果您要发送对象,您可能需要查看.Net Remoting选项或WCF服务(如果适用)。滚动自己的套接字处理程序然后将其用于复杂的操作会占用大量的时间和痛苦,特别是如果你以前没有这样做过。

答案 2 :(得分:0)

您可以处理此问题的一种方法是将对象序列化为XML,通过套接字发送,然后反序列化。我以前这样做过。但是,我(对.NET来说还是个新手)刚刚了解了JavaScriptSerializer,我相信这对你来说更容易。

答案 3 :(得分:0)

您需要序列化对象..使用[Serializable]属性标记并使用一些序列化程序。可以找到示例here

答案 4 :(得分:0)

任何通信情况中的第一件事是考虑您发送的任何内容必须能够被序列化和反序列化,以便它可以通过通信通道。接下来,你必须考虑到通信具有延迟(它不是瞬时的),然后是它可能失败的事实。

在此之后,您需要考虑协议和技术,以便将上述内容考虑在内。