在用tcpclient 和tcplistener 做个东西,客户端用streamreader.readline 总会造成卡死状态,请教下高手 我服务端成功接受到流并 streamwrite写入到流里了。客户端代码如下:
//ns已经定义了,ns=networkstream;
try
{
tcpclnt = new TcpClient();
tcpclnt.Connect("127.0.0.1", 8888);
ns = tcpclnt.GetStream(); string host = System.Net.Dns.GetHostName();
string qq = "PC id:" + host + " " + txtname.Text + " : " + textBox2.Text;
sr = new StreamReader(ns);
sw = new StreamWriter(ns);
sw.WriteLine(qq);
sw.Flush(); while (sta)
{
textBox1.AppendText(sr.ReadLine());
}
textBox2.Text = "";
} catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
//ns已经定义了,ns=networkstream;
try
{
tcpclnt = new TcpClient();
tcpclnt.Connect("127.0.0.1", 8888);
ns = tcpclnt.GetStream(); string host = System.Net.Dns.GetHostName();
string qq = "PC id:" + host + " " + txtname.Text + " : " + textBox2.Text;
sr = new StreamReader(ns);
sw = new StreamWriter(ns);
sw.WriteLine(qq);
sw.Flush(); while (sta)
{
textBox1.AppendText(sr.ReadLine());
}
textBox2.Text = "";
} catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
sr.Close();
sw.Close();
}
{
textBox1.AppendText(sr.ReadLine());
}
textBox2.Text = "";
sr.Close();
sw.Close();
所以要移到顶部if(sr.Length>0)
{
sr.BaseStream.Position = 0;
textBox1.AppendText(sr.ReadLine());
}
就像刚出生的小孩再怎么厉害, 让他吃肯德基, 吃的再快也快不了哪里去...
{
sr.BaseStream.Position = 0;
textBox1.AppendText(sr.ReadLine());
}
{
sr.BaseStream.Position = 0;
textBox1.AppendText(sr.ReadLine());
}是这样吗? 我加了进去,效果一样,我专门用messagesbox show了一下 readline长度有了。 但是textbox1 还是加不进来字符。郁闷。。 咋回事呢