如何使用Streamreader通过TCP检索大型字符串

时间:2013-01-31 20:02:28

标签: c# tcpclient streamreader

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

1 个答案:

答案 0 :(得分:1)

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

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