private void OnConnectCallback(IAsyncResult result) { SocketClientResult cRes = SocketClientResult.None; try { if (IsConnected) { Socket socket = result.AsyncState as Socket; socket.EndConnect(result); Receive(); cRes = SocketClientResult.Success; } else { cRes = SocketClientResult.NotConnect; } } catch { cRes = SocketClientResult.Exception; Disconnect(); } finally { OnConnectCompletedEvent?.Invoke(cRes); } }
public void Connect() { try { _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); _socket.BeginConnect(_ipEndPoint, OnConnectCallback, _socket); } catch { _socket?.Close(); _socket = null; OnConnectCompletedEvent?.Invoke(SocketClientResult.Exception); } }