IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000); // Create a TCP/IP socket.
Socket listener = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp ); // Bind the socket to the local endpoint and
// listen for incoming connections.
try {
listener.Bind(localEndPoint);
listener.Listen(10); ====》表示可以接受连接的数量一個客端呼叫主端后,已經建立連接, 但如果現在再有一個客端呼叫主端的話, 主端還能Listen得到嗎?如果能,能否Accept ? 都為同一端口.不可以,只有当该连接断开后才能连接。
Listen 可以让一个面向连接的 Socket 侦听传入的连接尝试。backlog 参数指定队列中最多可容纳的等待接受的传入连接数。若要确定可指定的最大连接数,请检索 MaxConnections 值。Listen 不会阻塞。Accept()方法从挂起的请求队列中提取第一个连接请求,并创建一个新的套接字来对它进行处理。尽管创建了一个新的套接字,但原始的套接字仍将继续侦听,并且可以与多线程处理一起使用以接受多个客户连接。
IPAddress ipAddress = ipHostInfo.AddressList[0];
IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 11000); // Create a TCP/IP socket.
Socket listener = new Socket(AddressFamily.InterNetwork,
SocketType.Stream, ProtocolType.Tcp ); // Bind the socket to the local endpoint and
// listen for incoming connections.
try {
listener.Bind(localEndPoint);
listener.Listen(10); ====》表示可以接受连接的数量一個客端呼叫主端后,已經建立連接, 但如果現在再有一個客端呼叫主端的話, 主端還能Listen得到嗎?如果能,能否Accept ? 都為同一端口.不可以,只有当该连接断开后才能连接。
Listen 可以让一个面向连接的 Socket 侦听传入的连接尝试。backlog 参数指定队列中最多可容纳的等待接受的传入连接数。若要确定可指定的最大连接数,请检索 MaxConnections 值。Listen 不会阻塞。Accept()方法从挂起的请求队列中提取第一个连接请求,并创建一个新的套接字来对它进行处理。尽管创建了一个新的套接字,但原始的套接字仍将继续侦听,并且可以与多线程处理一起使用以接受多个客户连接。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货