gpt4 book ai didi

C# - 避免获取 SocketException

转载 作者:行者123 更新时间:2023-11-30 19:28:13 24 4
gpt4 key购买 nike

我想知道是否有一种方法可以避免在我无法连接时获取 SocketException 而不是使用 try/catch 捕获 SocketException。

我有这段代码可以检查服务器是否可用:

public bool CheckServerStatus(string IP, int Port)
{
try
{
IPAddress[] IPs = Dns.GetHostAddresses(IP);

using (Socket s = new Socket(AddressFamily.InterNetwork,
SocketType.Stream,
ProtocolType.Tcp))
s.Connect(IPs[0], Port);

return true;
}
catch (SocketException)
{
return false;
}
}

提前致谢。

最佳答案

您可以子类化 Socket 并提供您的具体实现:

public class MySocket : Socket{
//...
public boolean TryConnect(...){
}
}

您也可以返回一个 Result 对象来代替 bool 值,该对象保存用于错误处理的异常:

public class Result {
public Exception Error { get; set; }
public boolean Success { get{ return Error != null; } }
}

关于C# - 避免获取 SocketException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16334530/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com