如何使用流读取器通过TCP检索大字符串

本文关键字:TCP 检索 字符串 何使用 读取 | 更新日期: 2023-09-27 17:56:57

我正在尝试通过TCP接收大字符串,我尝试了各种方法,但没有一种方法像这种方法那样好(实际上非常简单)。

public partial class MyClass : Form
{
    Int64 counter;
    StreamWriter writer;
    StreamReader reader;
    public MyClass(object streamIn, object StreamOut)
    {
        InitializeComponent();
        richTextBox1.BackColor = Color.Black;
        richTextBox1.ForeColor = Color.Gray;

        writer = (StreamWriter)streamIn;
        reader = (StreamReader)StreamOut;
    }
    private void button1_Click(object sender, EventArgs e)
    {
            JObject o = new JObject();
            char[] buffer = new char[1024];
            int count = buffer.Length;
            o.Add("comando", 15);
            o.Add("filename", textBox2.Text);
            o.Add("param", textBox3.Text);
            writer.Write(o.ToString());
            writer.Flush();
            richTextBox1.Text = reader.ReadToEnd();
    }
}

使用它的问题是我必须关闭另一端的流,以便读取。有什么方法可以使用reader.ReadToEnd(),而不必在发送后关闭另一端的流,从而关闭客户端-服务器之间的连接?

如何使用流读取器通过TCP检索大字符串

查看入门文章中介绍的网络库 networkcomms.net 的基本示例。虽然这是一个控制台示例,但它允许您发送任意长度的字符串。

您的示例看起来像是一个 winform 应用程序。如果有兴趣,还有一个 WPF 聊天应用程序示例。