【发布时间】:2011-06-21 08:47:03
【问题描述】:
我是否需要关闭连接才能真正发送消息?因为无论我使用发送命令还是使用网络流,我的消息在我关闭连接之前都不会得到处理。这是它应该的方式还是我错过了什么?
好的,这是代码。
private void connectButton_Click(object sender, EventArgs e)
{
try
{
client = new TcpClient();
client.Connect(ip, port);
netStream = client.GetStream();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void disconnectButton_Click(object sender, EventArgs e)
{
if (client != null)
{
if (client.Connected)
{
client.Close();
client = null;
}
}
}
private void sendButton_Click(object sender, EventArgs e)
{
byte[] cmd = ToByteArray("bla bla bla");
netStream.Write(cmd, 0, cmd.Length);
netStream.Flush();
}
我觉得和这个方法没关系,但是看看吧。
public static byte[] ToByteArray(string str)
{
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
return encoding.GetBytes(str);
}
【问题讨论】:
-
你在用什么类? + 粘贴代码示例。
-
你所有的代码都属于我们。
-
ToByteArray 长什么样子?
-
只是一个与您的问题无关但根据 MSDN 的旁注:“在发送和接收数据时,您必须关闭 NetworkStream。关闭 TcpClient 不会释放 NetworkStream。” msdn.microsoft.com/en-us/library/…
-
谢谢克里斯,我会记住这一点的。