예제 #1
0
 public void ListenAsync(int port, GetSocketCallBack callback)
 {
     // 在另一个线程中运行
     new Thread(
         new ThreadStart(delegate
     {
         Listen(port, callback);
     })).Start();
 }
예제 #2
0
 public void ListenAsync(int port, GetSocketCallBack callback)
 {
     // 在另一个线程中运行
     new Thread(
         new ThreadStart(delegate
         {
             Listen(port, callback);
         })).Start();
 }
예제 #3
0
 public void ListenAsync(int port, GetSocketCallBack callback)
 {
     // Run on another thread.
     new Thread(
         new ThreadStart(delegate
     {
         Listen(port, callback);
     })).Start();
 }
예제 #4
0
        public void Listen(int port, GetSocketCallBack callback)
        {
            // As a matter of convenience, we use 127.0.0.1 as server socket
            // address. This address is can only be accessed from local.
            // To let server accessible from network, try use machine's network
            // address.

            // 127.0.0.1 address
            IPEndPoint localEP = new IPEndPoint(0x0100007f, port);

            // network ip address.
            //IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
            //IPEndPoint localEP = new IPEndPoint(ipHostInfo.AddressList[0], port);

            Socket listener = new Socket(localEP.Address.AddressFamily,
                                         SocketType.Stream,
                                         ProtocolType.Tcp);

            try
            {
                listener.Bind(localEP);
                Console.WriteLine("Socket Listener opened: " + localEP);
                while (true)
                {
                    listener.Listen(10);
                    Socket socket = listener.Accept();

                    // Return connected socket through callback function.
                    if (callback != null)
                    {
                        callback(socket);
                    }
                    else
                    {
                        socket.Close();
                        socket = null;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.Write("Exception occured:" + ex.Message);
            }
            Console.WriteLine("Listener closed: " + localEP);
            listener.Close();
        }
예제 #5
0
        public void Listen(int port, GetSocketCallBack callback)
        {
            // 为了方便,我们使用了127.0.0.1作为服务器套接字
            // 地址。这个地址只能在本地访问。
            // 要让服务器可以通过网络访问,就尝试使用机器的网络地址。

            // 127.0.0.1 地址
            IPEndPoint localEP = new IPEndPoint(0x0100007f, port);

            // 网络ip地址
            //IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
            //IPEndPoint localEP = new IPEndPoint(ipHostInfo.AddressList[0], port);

            Socket listener = new Socket(localEP.Address.AddressFamily,
                                         SocketType.Stream,
                                         ProtocolType.Tcp);

            try
            {
                listener.Bind(localEP);
                Console.WriteLine("套接字监听器打开: " + localEP);
                while (true)
                {
                    listener.Listen(10);
                    Socket socket = listener.Accept();

                    // 通过回调函数返回连接套接字
                    if (callback != null)
                    {
                        callback(socket);
                    }
                    else
                    {
                        socket.Close();
                        socket = null;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.Write("发生异常:" + ex.Message);
            }
            Console.WriteLine("监听器关闭: " + localEP);
            listener.Close();
        }
예제 #6
0
        public void Listen(int port, GetSocketCallBack callback)
        {
            // 为了方便,我们使用了127.0.0.1作为服务器套接字
            // 地址。这个地址只能在本地访问。
            // 要让服务器可以通过网络访问,就尝试使用机器的网络地址。

            // 127.0.0.1 地址
            IPEndPoint localEP = new IPEndPoint(0x0100007f, port);

            // 网络ip地址
            //IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());
            //IPEndPoint localEP = new IPEndPoint(ipHostInfo.AddressList[0], port);

            Socket listener = new Socket(localEP.Address.AddressFamily,
                SocketType.Stream,
                ProtocolType.Tcp);

            try
            {
                listener.Bind(localEP);
                Console.WriteLine("套接字监听器打开: "+localEP);
                while (true)
                {
                    listener.Listen(10);
                    Socket socket = listener.Accept();

                    // 通过回调函数返回连接套接字
                    if (callback != null)
                        callback(socket);
                    else
                    {
                        socket.Close();
                        socket = null;
                    }
                }
            }
            catch (Exception ex)
            {
                Console.Write("发生异常:" + ex.Message);
            }
            Console.WriteLine("监听器关闭: "+localEP);
            listener.Close();
        }