C# TCP套接字上的XML

C# TCP套接字上的XML,c#,xml,sockets,tcp,C#,Xml,Sockets,Tcp,我想知道是否有人能帮我解决一个小问题 我将收到一个xml文件,该文件将通过tcp套接字发送。我正在尝试创建一个小应用程序,它可以充当服务器,并通过tcp套接字发送xml文件。然后,我可以开始测试将接收和处理此xml文档的初始应用程序 我试过谷歌,但在这一点上一直走到死胡同 一种可能的解决方案是将xml作为一系列字符串或字节数组加载并发送。字节数组方法可能是最简洁的方法,使用调用发送的应用程序将如下所示: using System; using System.Collections.Generic

我想知道是否有人能帮我解决一个小问题

我将收到一个xml文件,该文件将通过tcp套接字发送。我正在尝试创建一个小应用程序,它可以充当服务器,并通过tcp套接字发送xml文件。然后,我可以开始测试将接收和处理此xml文档的初始应用程序


我试过谷歌,但在这一点上一直走到死胡同

一种可能的解决方案是将xml作为一系列字符串或字节数组加载并发送。字节数组方法可能是最简洁的方法,使用调用发送的应用程序将如下所示:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using NetworkCommsDotNet;

namespace Client
{
    class Program
    {
        static void Main(string[] args)
        {
            byte[] bytesToSend = File.ReadAllBytes("filename.xml");
            TCPConnection.GetConnection(new ConnectionInfo("127.0.0.1", 10000)).SendObject("XMLData", bytesToSend);

            Console.WriteLine("Press any key to exit client.");
            Console.ReadKey(true);
            NetworkComms.Shutdown();
        }
    }
}
和服务器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using NetworkCommsDotNet;

namespace Server
{
    class Program
    {
        static void Main(string[] args)
        {
            NetworkComms.AppendGlobalIncomingPacketHandler<byte[]>("XMLData", (packetHeader, connection, incomingXMLData) => 
            {
                    Console.WriteLine("Received XMLData");
                    File.WriteAllBytes("filename.xml", incomingXMLData);
            });

            TCPConnection.StartListening(true);

            Console.WriteLine("Server ready. Press any key to shutdown server.");
            Console.ReadKey(true);
            NetworkComms.Shutdown();
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用NetworkCommsDotNet;
命名空间服务器
{
班级计划
{
静态void Main(字符串[]参数)
{
NetworkComms.AppendGlobalIncomingPacketHandler(“XMLData”,(packetHeader,connection,incomingXMLData)=>
{
Console.WriteLine(“接收到的XMLData”);
writealBytes(“filename.xml”,incomingXMLData);
});
TCPConnection.StartListening(真);
WriteLine(“服务器就绪。按任意键关闭服务器”);
Console.ReadKey(true);
NetworkComms.Shutdown();
}
}
}

显然,您需要从网站下载NetworkCommsDotNet DLL,以便将其添加到“使用NetworkCommsDotNet”参考中。另请参见客户机示例中的服务器IP地址当前为“127.0.0.1”,如果在同一台机器上同时运行服务器和客户机,则应该可以使用该地址。有关更多信息,请查看或文章。

您尝试了什么,在哪里卡住了?“Socket”和“TcpClient”在这里可能是有用的启动程序。通过TCP发送XML没有什么特别之处。我已经通过TCP连接成功地发送了字符串,这同样适用于发送XML数据。只需将xml文档打包成字符串并通过tcp发送即可?如何传递xml文档的文件名?当系统运行时,我将随机接收多个xml文档。谢谢你,斯图