Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.01.2019, 21:56   #1
AntonCH
Пользователь
 
Регистрация: 28.11.2017
Сообщений: 58
По умолчанию SocketException Требуемый адрес для своего контекста неверен

Пишу простой сканер портов. Столкнулся с такой ошибкой -
Вызвано исключение: "System.Net.Sockets.SocketException " в System.dll
Необработанное исключение типа "System.Net.Sockets.SocketException " в System.dll
Требуемый адрес для своего контекста неверен

Пробовал скачать из интернета пример, готовый сканер портов, там такая же борода при вызове
Код:
IAsyncResult asyncResult = MySoc.BeginConnect(IpEndP, new AsyncCallback(ConnectCallback), MySoc);
Код:
class Program
    {
        class IPParams {
            public string server;
            public int port;
 
            public IPParams(string server, int port) {
                this.server = server;
                this.port = port;
            }
        }
 
        public static void ConnectSocket(Object param)
        {
            Socket s = null;
            IPHostEntry hostEntry = null;
            IPParams p = (IPParams)param;
            hostEntry = Dns.GetHostEntry(p.server);
 
            foreach (IPAddress address in hostEntry.AddressList)
            {
                IPEndPoint ipe = new IPEndPoint(address, p.port);
                Socket tempSocket =
                    new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
 
                tempSocket.Connect(ipe);
                Console.Write(ipe.Address.ToString() + ":" + ipe.Port.ToString());
                if (tempSocket.Connected)
                {
                    s = tempSocket;
                    Console.WriteLine(" - открыт");
                    break;
                }
                else
                {
                    Console.WriteLine(" - закрыт");
                    continue;
                }
            }
            
            s.Close();           
        }
 
        static void Main(string[] args)
        {
            const int MAX_PORTS = 65536;
            //Thread T = new Thread(Program.ConnectSocket);
            for (int port = 0; port < MAX_PORTS; ++port)
                new Thread(Program.ConnectSocket).Start(new IPParams("yandex.ru", port));
        }
    }
Изображения
Тип файла: png Скриншот 29-01-2019 211240.png (46.9 Кб, 164 просмотров)
AntonCH вне форума Ответить с цитированием
Старый 29.01.2019, 22:29   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,707
По умолчанию

Не используйте 0 порт.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Windows7 - "Windows socket error: Требуемый адрес для своего контекста неверен (10049), on API 'connect' BaiAs БД в Delphi 4 06.09.2017 10:12
selenium System.Net.Sockets.SocketException: ts-alan C# (си шарп) 1 26.07.2016 11:35
Как добавить лайки для соц. сетей для своего сайта IT-Lopata HTML и CSS 2 09.04.2014 23:33
программа для анализа текста, оценка его контекста. (позитивный или негативный). prosport Помощь студентам 11 11.09.2013 10:04
Вывести требуемый элемент матрицы из файла vudex Помощь студентам 2 09.06.2010 16:14