非正常退出,如何改呢?

paul9137 2009-02-03 11:13:44
如下的程序,用于侦听设备发来的信号。
侦听程序运行中如果设备中途关闭后重新打开,程序有时会自行退出。如何处理这个情况呢?
多次测试,只有少数出现上述情况。
//开始监听
private void button1_Click(object sender, EventArgs e)
{
try
{
myIP = IPAddress.Parse(textBox1.Text);
}
catch { MessageBox.Show("您输入的IP地址格式不正确,请重新输入!"); }
try
{
Thread thread = new Thread (new ThreadStart(accp));
//thread.IsBackground = true;
thread.Start();
}
catch(Exception ee) {textBox2.AppendText(ee.Message);}
}

//线程同步方法 accp的代码。
private void accp()
{
MyServer = new IPEndPoint(myIP, 2300);
sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
sock.Bind(MyServer);
sock.Listen(50);
while(true)
{
accSock = sock.Accept();
if (accSock.Connected)
{
Thread thread = new Thread(new ThreadStart(round));
thread.Start();
}
}
}
private void round()
{
while (true)
{
NetworkStream netStream = new NetworkStream(accSock);
netStream.Read(RecByte, 0, RecByte.Length);
DoSomthing();
}
}
// 停止监听
private void button3_Click(object sender, EventArgs e)
{
try
{
sock.Close();
accSock.Close();
}
catch { MessageBox.Show("监听尚未开始,关闭无效!"); }
}
...全文
136 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
paul9137 2009-02-03
  • 打赏
  • 举报
回复
可否指出在哪句出的问题?
whoami333 2009-02-03
  • 打赏
  • 举报
回复
accp中侦听的地方也需要try...catch。

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧