我有一个通过串口和以太网连接到控制器的应用程序。控制器不断向PC抛出数据。我正在用C#编写应用程序。我已经创建了 串行端口控制 对象,并在中接收数据 收到的数据 方法类似地,我使用了以太网 TCPListener公司 及其方法 startAcceptClient 接受来自客户端的连接。
现在,我的问题是,控制器是否已关闭电源,或者是否已将电缆从电脑中拔出;如何在应用程序中检测这些事件?
我对TCPListener不太熟悉,但对于SerialPort,我使用了一个计时器,每次勾选都会检查端口是否仍然打开
private void ComTimer_Tick(object sender, EventArgs e) { if (SerialPort.IsOpen) { dostuff } else if (!SerialPort.IsOpen) { ComCheckTimer.Stop(); MessageBox.Show("Connection lost"); } }
对于计时器
ComCheckTimer = new Timer(); ComCheckTimer.Tick += new EventHandler(ComTimer_Tick); ComCheckTimer.Interval = 1000;
这将创建一个每1000毫秒滴答一次的计时器