如何从TCP流中读取和解析XML?

时间:2018-05-29 21:39:10

标签: c# xml tcp stream

感谢您抽出宝贵时间来查看我的问题!这是我的第一篇文章,所以请原谅我,如果我做错了论坛的话:)

编辑:我似乎解决了我的问题。我只是一次读取TCP流1行,并从那里使用if语句来确定读取开始和停止点。

更新代码:

using System;
using System.Net.Sockets;
using System.Net;
using System.IO;
using System.Threading;
using System.Text;
using System.Xml;

namespace RFLY_CMD
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Starting...");
            TcpListener server = new TcpListener(IPAddress.Parse("127.0.0.1"), 7362);
            server.Start();
            Console.WriteLine("Started.");
            while (true)
            {
                ClientWorking cw = new ClientWorking(server.AcceptTcpClient());
                new Thread(new ThreadStart(cw.DoSomethingWithClient)).Start();
            }
        }
    }

class ClientWorking
{
    private Stream ClientStream;
    private TcpClient Client;

    public ClientWorking(TcpClient Client)
    {
        this.Client = Client;
        ClientStream = Client.GetStream();
    }

    public void DoSomethingWithClient()
    {
        StreamWriter sw = new StreamWriter(ClientStream);
        StreamReader sr = new StreamReader(sw.BaseStream);
        string data;
        try
        {
            while (true)
            {
                data = sr.ReadToEnd();
                if (!string.IsNullOrEmpty(data) && !string.IsNullOrWhiteSpace(data))
                {
                    //Console.Clear();
                    Console.WriteLine(data);
                    //Console.WriteLine("---------------");
                }
                sr.DiscardBufferedData();
            }
        }
        finally
        {
            Console.Write("Ending...");
            sw.Close();
        }
    }
}

Working Screenshot
结束编辑。

好的,这就是问题所在......我有一个像这样发送XML的应用程序:

XML Screenshot

但是,我只需要这里显示的红色框中的文字字符串:

Target Data

这是我第一次处理XML,我对TCP有一点经验。除此之外,我在我的头上。 提前谢谢!

这是我的代码:

reduce

}

0 个答案:

没有答案