C# socket超时释放端口

我写了一个TCP服务器的程序,开启一个端口监听客户端的接入,this.acceptedSocket=this.socket.Accept();//接受客户端连接。如何设置... 我写了一个TCP服务器的程序,开启一个端口监听客户端的接入,this.acceptedSocket = this.socket.Accept();//接受客户端连接。如何设置一个判断,10秒之内如果没有客户端连接进来,acceptedSocket就关闭掉。因为我的程序执行到this.acceptedSocket = this.socket.Accept();时就死机掉了,直到有客户端连接进来。求大神直到!! 展开
 我来答
空雪梦见
推荐于2016-03-04 · TA获得超过5597个赞
知道大有可为答主
回答量:2522
采纳率:75%
帮助的人:1165万
展开全部
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;
    }
}


用异步即可解决

追问

我的程序是这样的,请问异步这么解决啊?

追答

你这代码一大堆其他什么什么问题我就不管了。

我只管给你改成只等10秒的

下次别用截图

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

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式