C# 异步TCP客户端端口检查
我认为这个端口检查需要是异步的。侦听器似乎在获得第二个连接时死亡。注释掉的位是正确的方法吗?这是否需要异步和等待C# 异步TCP客户端端口检查,c#,asynchronous,tcpclient,C#,Asynchronous,Tcpclient,我认为这个端口检查需要是异步的。侦听器似乎在获得第二个连接时死亡。注释掉的位是正确的方法吗?这是否需要异步和等待 public void IPPortCheck(string ip, string port) { try { using (TcpClient client = new TcpClient(ip, port)) { //if (client.Connected == true) //{
public void IPPortCheck(string ip, string port)
{
try
{
using (TcpClient client = new TcpClient(ip, port))
{
//if (client.Connected == true)
//{
client.SendTimeout = 1000;
//}
}
}
catch (SocketException Ex)
{
}
}
如果未引发异常,则连接成功。如果要扫描多个端口,请尝试使用
Parallel.Foreach(..)
这里没有足够的信息来找出问题所在。这是一个客户端-连接到侦听器的部分。如果您遇到侦听器在第一次连接请求后失败的问题,您应该深入研究侦听器的问题,而不是这个类。这个类所做的只是尝试打开一个连接,然后关闭它。由于TCP侦听器通常是一个完全开放的端口,因此它应该设计为处理来自任何地方的连接,从而能够处理意外的输入/事件。听起来好像不是。如果它没有引发异常,则连接成功。如果要扫描多个端口,请尝试使用Parallel.Foreach(..)
这里没有足够的信息来找出问题所在。这是一个客户端-连接到侦听器的部分。如果您遇到侦听器在第一次连接请求后失败的问题,您应该深入研究侦听器的问题,而不是这个类。这个类所做的只是尝试打开一个连接,然后关闭它。由于TCP侦听器通常是一个完全开放的端口,因此它应该设计为处理来自任何地方的连接,从而能够处理意外的输入/事件。听起来好像不是。