private void btnStop_Click(object sender, RoutedEventArgs e)
{
bIsExecute = false; //此处拆除循环条件
//方法1:直接停止监听套接字,引发异常从而强行使Accept退出阻塞。
//---------------------------------------------
//if (listener != null)
//{
// listener.Stop();
//}
//---------------------------------------------
//方法2:主动发送一条数据,使Accept自然地退出阻塞。
//---------------------------------------------
TcpClient tcpClient = new TcpClient();
tcpClient.Connect("127.0.0.1",9000);
NetworkStream ns = tcpClient.GetStream();
if (ns.CanWrite)
{
Byte[] sendBytes = Encoding.ASCII.GetBytes("Exit");
ns.Write(sendBytes, 0, sendBytes.Length);
lbMsg.Items.Add("发送退出命令成功!");
}
else
{
lbMsg.Items.Add("发送退出命令失败!");
return;
}
ns.Close();
tcpClient.Close();
//---------------------------------------------
btnStart.IsEnabled = true;
btnStop.IsEnabled = false;
}
————————————————
版权声明:本文为CSDN博主「西刷君」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/yijun494610095/java/article/details/55257787