public void ListenAsync(int port, GetSocketCallBack callback) { // 在另一个线程中运行 new Thread( new ThreadStart(delegate { Listen(port, callback); })).Start(); }
public void ListenAsync(int port, GetSocketCallBack callback) { // Run on another thread. new Thread( new ThreadStart(delegate { Listen(port, callback); })).Start(); }
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(); }
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(); }
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(); }