用tcpclient的异步连接方式,设置连接超时

如题

原理:异步连接,获取状态。阻止主进程等待异步进程返回。指定异步进程超时时间,这段时间内,如果异步连接没有返回,则以未完成状态返回,主进程继续。

根据对获取到的状态的识别,来判断是超时还是收到回应而使进程继续。再分别处理。

代码:

static void Main(string[] args)
        {
            for (int i = 20; i <= 25; i++)
            {
                TcpClient tcp = new TcpClient();
                IAsyncResult async = tcp.BeginConnect(IPAddress.Parse("120.27.234.XXX"), i, null, null);
                async.AsyncWaitHandle.WaitOne(1000);
                if (async.IsCompleted)
                {
                    Console.WriteLine($"{i} is open.");
                }
                else
                {
                    Console.WriteLine($"{i} is closed."); ;
                }
                tcp.Close();
            }
            Console.WriteLine("ok");
            Console.ReadKey();
        }

原文地址:https://www.cnblogs.com/wanjinliu/p/12669556.html

时间: 2024-08-30 13:50:14

用tcpclient的异步连接方式,设置连接超时的相关文章

.Net连接字符串设置连接池大小显著提高数据库速度

在访问mysql数据库时,如果在连接字符串中设置使用连接池,同时设置连接池大小,经测试,可以显著提高访问数据库时的速度. 连接字符串: connectionStrings>    <add name="connectionstr" connectionString="Database=userDB;Data Source=localhost;User Id=root;Password=abcabc;CharSet=utf8;port=3306;Pooling=tr

linux系统连接方式和连接出现问题的常见的解决方法

1.本地服务器/虚拟机网络的配置1.1.nmtui配置(centos 6:setup) 1.2.验证网卡配置是否正确,ping 223.5.5.5是否通畅,此情况为不通畅的情况,针对这个情况,目前做如下解决方案 1.2.1 查看网络配置是否正确 1.2.2 重启网络服务:(systemctl restart network) 1.2.3 查看网卡地址(centos7:ip addr show centos6:ifconfig) 1.2.4 查看路由地址(centos7:ip route show

Ubuntu14.041+VMware12.0NET方式网卡连接虚拟机联网问题解决方法

进入命令:vi /etc/network/interfaces 修改成上图所示: 网络连接方式设置为NET方式: 重启网卡:顺序执行 ifdown eth0 ifup eth0 完成网卡的重启: 使用ping www.baidu.com测试是否能连接成功: 使用ifconfig查看是否IP配置成功: 注意:不同版本的UBUNTU的网卡重启命令不同:根据自己的版本执行相关指令: 我在使用过程中,遇到相关问题,就是即使重启网卡后,还是不能联网:如下图 解决方法:重装虚拟机,完美解决:

odp.net连接方式,部署问题总结

  一. 摘要 在C#开发的过程中,经常需要操作Oracle数据库,而实际在部署程序的时候,经常要根据系统环境(32.64bit).不安装Oracle客户端等等需求,而Odp.net 也没有完美兼容的类库,应用可以调用, 所以部署起来总是碰到各种问题,挺头疼的,在这里,我对工作中碰到的问题进行总结一下. 二. 本文提纲 连接方式 32位系统 64位系统 免安装Oracle客户端 小结 三. 主要内容   连接方式 C#连接Oracle的方式,我一般都是通过odp.net 进行连接   <conf

Android 设置VPN(pptp连接方式)

本教程以小米手机的MIUI系统为例子,教大家如何设置VPN 先找到“设置”,打开设置菜单,如下图: 在设置菜单里面找“其它连接方式” 然后找到“VPN”,点击进入: 进入VPN设置界面后,如果VPN未开启,请先开启VPN,然后在界面下方找“添加VPN”按钮,点击进入添加界面: 在添加VPN的界面中,“名称”可以随便填写一个名字,但是类型要选择“PPTP”,这里如果选错,就会连不上,特别注意哦. 服务器地址就填我们给你的 服务器地址  或 拨号地址 . 用户名 和 密码就填我们给你的账号信息. 设

Mac OS 中设置VPN(pptp连接方式)

第一步:点击系统设置(如图) 第二步:点击网络,进入网络设置(如图) 第三步:点击+号-创建新服务,创建新的VPN网络连接(如图) 第四步:接口-中选-VPN, VPN类型-中选-PPTP,服务名称-中选-VPN,然后点击-创建(如图) 第五步服务器地址填入:服务器ip地址(服务器ip地址请登陆会员中心查看) 账户名称填入:你在官网注册充值的用户名,然后点击-鉴定设置(如图) 第六步:密码-你在官网注册充值的用户名登录密码,然后点击-确定(如图) 第七步:点击上图-高级按钮,对VPN的使用方式进

TextView设置连接的方式

1.设置TextView的autoLink属性值 <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_

TCP同步与异步,长连接与短连接【转载】

原文地址:TCP同步与异步,长连接与短连接作者:1984346023 [转载说明:http://zjj1211.blog.51cto.com/1812544/373896   这是今天看到的一篇讲到TCP同步与异步,长连接与短连接编程的文章,内容不多,却把概念将的比较清晰.] 标签:TCP 线程 异步 模式 阻塞 首先我简单介绍一下同步TCP编程 与异步TCP编程. 在服务端我们通常用一个TcpListener来监听一个IP和端口.客户端来一个请求的连接,在服务端可以用同步的方式来接收,也可以用

Oracle Table连接方式分析

Oracle Table连接方式分析 表连接基本知识: 1.哪张表将驱动查询(即访问的第一张表)?按照指定的路径查询,何时将访问到没一张表?可选的驱动路径有哪些? 2.可能出现哪些Oracle连接?记住:在Oracle中,连接顺序.可选的索引.用于排序和建立散列表的可用内存的不同都会导致不同的结果. 3.哪些索引是可用的?哪些索引是可选的?索引的选择不仅仅将导致优化器使用或者限制一个索引,还将改变驱动查询的方式,并可能决定使用或者限制查询中其他的索引. 4.哪些提示提供了可选的路径?哪些提示限制

关联操作方式(表连接方式)

NESTED LOOPS(嵌套循环连接) 在嵌套循环连接中,oracle从第一个行源中读取第一行,然后和第二个行源中的数据进行对比. 所有匹配的记录放在结果集中,然后Oracle将读取第一个行源中的下一行.按这种方式直至第一个数据源中的所在行都经过处理. 第一个记录源通常称为外部表,或者驱动表,相应的第二个行源称为内部表.使用嵌套循环连接是一种从连接结果中提取第一批记录的最快速的方法. 在驱动行源表(就是您正在查找的记录)较小.或者内部行源表已连接的列有惟一的索引或高度可选的非惟一索引时, 嵌套