public void OnClientConnect(IAsyncResult asyn) { try { TcpClient clientSocket = default(TcpClient); // Socket sck; clientSocket = _listener.EndAcceptTcpClient(asyn); IPAddress add = IPAddress.Parse(((IPEndPoint)clientSocket.Client.RemoteEndPoint).Address.ToString()); curIP = add.ToString(); //Use this.Invoke or this.BeginInvoke this.Invoke(new Action(() => { lstIP.items.add("client connected with ip" + curIP); MessageBox.Show("cleint connected with ip:" + curIP); })); HandleClientRequest clientReq = new HandleClientRequest(clientSocket); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } WaitForClientConnect(); }
/// <summary> /// </summary> /// <param name="asyncResult"> /// </param> private void OnClientConnect(IAsyncResult asyncResult) { try { TcpClient clientSocket = default(TcpClient); clientSocket = this.listener.EndAcceptTcpClient(asyncResult); HandleClientRequest clientRequest = new HandleClientRequest(clientSocket); clientRequest.OnConnect += this.ClientConnected; clientRequest.OnDisconnect += this.ClientDisconncted; clientRequest.MessageReceived += this.ClientMessage; clientRequest.StartClient(); } catch (Exception e) { LogUtil.ErrorException(e); } this.WaitForClientConnect(); }
/// <summary> /// </summary> /// <param name="request"> /// </param> /// <param name="onMessageArgs"> /// </param> private void ClientMessage(HandleClientRequest request, OnMessageArgs onMessageArgs) { this.MessageReceived(request, onMessageArgs); }