Пример #1
0
        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() + " - ошибка при соединении");
                    }
                }
            }
        }
Пример #2
0
 public string Get(IPParams ipParam)
 {
     return(ipParam.Get(Name) ?? Value);
 }