//用于控制进程等待
private static ManualResetEvent socketReset = new ManualResetEvent(true);
//暂时使用的超时时间的设定 单位:秒
public static int overTimes = 2;
#region 判断socket状态
/// <summary>
/// 在超时时间内判断连接是否存在或通畅
/// </summary>
/// <param name="ip"></param>
/// <param name="port"></param>
/// <returns></returns>
public static bool IsConnect(string ip, int port)
{
//重置等待变量
socketReset.Reset();
//准备参数
bool connected = false;
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPAddress ipAddress = null;
IPAddress.TryParse(ip, out ipAddress);
//获取ipe
IPEndPoint iep = new IPEndPoint(ipAddress, port);
//尝试请求
验证socket能否连接
最新推荐文章于 2022-05-08 13:03:53 发布
该代码示例展示了如何使用ManualResetEvent和AsyncCallback判断一个Socket在指定超时时间内是否成功连接到指定的IP和端口。通过BeginConnect发起异步连接请求,然后使用WaitOne等待结果,最后通过Connected属性确认连接状态。
摘要由CSDN通过智能技术生成