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;
}
}
用异步即可解决
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询