示例#1
0
        public static void Connect(Peer Peer, string Host, int Port, int Ms, bool isSecure, bool isLocal, EventHandler <SocketAsyncEventArgs> Completed)
        {
            IPAddress IP = MemoryUtils.Host2IP(Host);

            if (IP == null)
            {
                MemoryUtils.Error("Could not resolve host " + Host);
                return;
            }

            SocketAsyncEventArgs e = new SocketAsyncEventArgs();

            e.RemoteEndPoint = new IPEndPoint(IP, Port);
            e.Completed     += Completed;

            Socket Socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            Socket.NoDelay             = true;
            Socket.Blocking            = false;
            Socket.ExclusiveAddressUse = true;
            Socket.LingerState         = new LingerOption(true, 0);

            e.UserToken = Create(Socket, Peer, isSecure, isLocal);

            if (!Socket.ConnectAsync(e))
            {
                Completed(null, e);
            }
        }