Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中通过套接字发送信息#_C#_Networking_Sockets_Stream - Fatal编程技术网

C# 在C中通过套接字发送信息#

C# 在C中通过套接字发送信息#,c#,networking,sockets,stream,C#,Networking,Sockets,Stream,我用C#构建了两个程序,并通过套接字发送简单字符串。目前这还可以,但在不久的将来,我将需要发送更复杂的项目,例如对象到套接字并最终发送文件 我将采取什么步骤来实现这一点?缓冲区用于套接字/流的用途是什么?如果我说得有点含糊,很抱歉。处理这个问题的一种方法是将对象序列化为XML,通过套接字发送,然后反序列化它。我以前也这样做过。但是,我(对.NET来说是相当新的)刚刚了解了,我相信这会使这个过程更容易。您需要序列化对象。。用[Serializable]属性标记它,并使用一些序列化程序。。可以找到例

我用C#构建了两个程序,并通过套接字发送简单字符串。目前这还可以,但在不久的将来,我将需要发送更复杂的项目,例如对象到套接字并最终发送文件


我将采取什么步骤来实现这一点?缓冲区用于套接字/流的用途是什么?如果我说得有点含糊,很抱歉。

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

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

在任何一种情况下,首先要考虑的是,你发送的任何东西都必须能够被序列化和去序列化,这样它才能越过一条通信信道。接下来,你必须考虑到COMs有延迟(它不是瞬时的),然后考虑到它可能失败的事实。

在此之后,您可以考虑使用协议和技术来解决上述问题。

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


值得在这里研究xml序列化。

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

此外,请参阅此处发布的指南:


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

谢谢大家的回答。非常有用,虽然代码僧侣提供的链接很棒。干杯