1

我正在尝试通过 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(),而不必在发送后关闭另一端的流,从而关闭客户端-服务器之间的连接?

4

1 回答 1

1

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

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

于 2013-02-02T17:20:46.570 回答