public static void ConnectSocket(Object param) { IPParams p = (IPParams)param; IPHostEntry hostEntry = Dns.GetHostEntry(p.server); foreach (IPAddress address in hostEntry.AddressList) { try { IPEndPoint ipe = new IPEndPoint(address, p.port); Socket tempSocket; if (p.protocol == Protocol.Tcp) { tempSocket = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp); } else { tempSocket = new Socket(ipe.AddressFamily, SocketType.Dgram, ProtocolType.Udp); } tempSocket.Connect(ipe); if (tempSocket.Connected) { tempSocket.Close(); Console.WriteLine(ipe.Address.ToString() + ":" + ipe.Port.ToString() + " " + p.protocol.ToString() + " - открыт"); break; } else { Console.WriteLine(ipe.Address.ToString() + ":" + ipe.Port.ToString() + " " + p.protocol.ToString() + " - закрыт"); continue; } } catch (SocketException e) { if (e.SocketErrorCode == SocketError.TimedOut) { Console.WriteLine(address + ":" + p.port.ToString() + " " + p.protocol.ToString() + " - превышено время ожидания"); } else if (e.SocketErrorCode == SocketError.AccessDenied) { Console.WriteLine(address + ":" + p.port.ToString() + " " + p.protocol.ToString() + " - доступ запрещен"); } else if (e.SocketErrorCode == SocketError.ConnectionReset || e.SocketErrorCode == SocketError.ConnectionAborted || e.SocketErrorCode == SocketError.ConnectionRefused) { Console.WriteLine(address + ":" + p.port.ToString() + " " + p.protocol.ToString() + " - сервер скидывает соединение"); } else { Console.WriteLine(address + ":" + p.port.ToString() + " " + p.protocol.ToString() + " - ошибка при соединении"); } } } }
public string Get(IPParams ipParam) { return(ipParam.Get(Name) ?? Value); }