C# socket超时释放端口
我写了一个TCP服务器的程序,开启一个端口监听客户端的接入,this.acceptedSocket=this.socket.Accept();//接受客户端连接。如何设置...
我写了一个TCP服务器的程序,开启一个端口监听客户端的接入,this.acceptedSocket = this.socket.Accept();//接受客户端连接。如何设置一个判断,10秒之内如果没有客户端连接进来,acceptedSocket就关闭掉。因为我的程序执行到this.acceptedSocket = this.socket.Accept();时就死机掉了,直到有客户端连接进来。求大神直到!!
展开
1个回答
展开全部
using System;
using System.Threading;
using System.Net;
using System.Net.Sockets;
class Program
{
static void Main(string[] args)
{
TcpListener tl = new TcpListener(IPAddress.Any, 8080);
EventWaitHandle ev = new EventWaitHandle(false, EventResetMode.ManualReset);
tl.Start();
var ar = tl.BeginAcceptTcpClient(new AsyncCallback(x => ev.Set()), null);
if (!ev.WaitOne(TimeSpan.FromSeconds(10)))
Console.WriteLine("10秒没人理");//10秒没人连接
else {
TcpClient tc = tl.EndAcceptTcpClient(ar);
Console.WriteLine("连接来自"+tc.Client.RemoteEndPoint.ToString());
}
return;
}
}
用异步即可解决
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询