private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { if (e.CloseReason == CloseReason.UserClosing) { if (this.ScreenBroadcastToolStripMenuItem.Text == "关闭广播") { DialogResult r = MessageBox.Show("屏幕广播尚未关闭,确定要退出程序?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (r != DialogResult.OK) { e.Cancel = true; } else { if (rtspAddress != null) { si.stopScreenInteract(); } if (clientConnect != null) { clientConnect.ServiceClose();//用户退出程序时,释放连接 clientConnect = null; } System.Environment.Exit(0); } } else { DialogResult r = MessageBox.Show("确定要退出程序?", "操作提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question); if (r != DialogResult.OK) { e.Cancel = true; } else { if (clientConnect != null) { clientConnect.ServiceClose();//用户退出程序时,释放连接 clientConnect = null; } System.Environment.Exit(0); } } } }
bool flag = true; //ReceiveMeg函数开始标记 public MainForm() { InitializeComponent(); messageCallback = new messageListCallback(setMessage); //绑定信息提示事件函数 userCallback += userListShow; //z这边写出函数名以后,可以自动生成相应的函数(函数参数与相应的委托声明相同) userOfflineCallback += userOffline; clientConnect = new ClientConnectTcp(); clientConnect.ServerConnected += clientConnect_ServerConnected; clientConnect.ServerConnectFailed += clientConnect_ServerConnectFailed; clientConnect.MessageReceived += clientConnect_MessageReceived; clientConnect.ServerLost += clientConnect_ServerLost; imgList = this.imageList1; // 本机节点 ipEndPoint = new IPEndPoint(IPAddress.Any, listenPort); // 远程节点 //remoteEP = new IPEndPoint(IPAddress.Parse("172.26.162.212"), remotePort); // 实例化 udpReceive = new UdpClient(ipEndPoint); // 实例化udpReceiveState udpReceiveState = new UdpState(); udpReceiveState.udpClient = udpReceive; udpReceiveState.ipEndPoint = ipEndPoint; }