public bool Connect(string ip, int port) { Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { sock.Blocking = false; sock.Connect(ip, port); } catch (SocketException e) { if (e.ErrorCode != 10035) { Log.E(e.Message); return false; } } mainHandle_ = new NetHandle(sock); onUpdate_ = ConnectorTryConnect; return true; }
public bool Listen(int port) { Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { IPEndPoint ipe = new IPEndPoint(IPAddress.Any, port); sock.Bind(ipe); sock.Listen(backLog_); sock.Blocking = false; mainHandle_ = new NetHandle(sock); } catch (Exception e) { Log.E(e.Message); return false; } onUpdate_ = AcceptorUpdate; return true; }
bool ConnectorTryConnect() { if (mainHandle_.Poll(0, SelectMode.SelectError)) return false; if (mainHandle_.Poll(0, SelectMode.SelectWrite)) { onUpdate_ = ConnectorUpdate; onConnect_(mainHandle_); } return true; }