public override Peer Start(string address) { if (_session != null) { return(this); } _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); _session = AddSession(_socket, _queue); var addr = new NetworkAddress(); addr.Resolve(address, ResolveDNS, delegate { BeginConnect(addr.AddressList, addr.Port); }); return(this); }