Проверка работы списка прокси под linux

Тема в разделе "WASM.NETWORKS", создана пользователем psu, 26 май 2007.

  1. psu

    psu New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2006
    Сообщения:
    198
    Программа должна считывать строки вида ip:port из файла и проверять, работает ли данный прокси, определять его тип. Для ускорения сканирования работает сразу несколько потоков
    Проблема с connect : errno = 113
    Под линукс не писал практически ничего, поэтому не могу найти ошибку. ( Программа переписывалась из недописанной виндовой версии )
    Выкладываю исходник
    Спасибо
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Код (Text):
    1.             long ia = inet_addr( ip );
    2.             saddr.sin_addr.s_addr = htonl( ia );
    уверен?
     
  3. psu

    psu New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2006
    Сообщения:
    198
    Спасибо :) ступил..

    Еще проблемка появилась. Необходимо проверить, поддерживает ли прокси соединение. Посылаю CONNECT, после чего recv возвращает -1, а errno == ECONNRESET. Ничего вразумительного по исправлению этой ошибки в гугле не нашел

    З.Ы. В коде есть несколько puts( "<число>" ) Дело в том, что прога вылетает на следующем send. Т.е перед puts( "7" ). Если закоментить CONNECT посылку/проверку то все норм.

    Вот новый исходник:
     
  4. psu

    psu New Member

    Публикаций:
    0
    Регистрация:
    12 июл 2006
    Сообщения:
    198
    1. После посылки команды CONNECT проксик, кажеться, закрывает соединение. Как это проверить? Если таки закрывает, то что сделать, чтобы без пересоединения послать более одного запроса?

    2. Подскажите, правильно ли продуман алгоритм проверки ( сокет не блокирующий )
    - connect()
    - select() проверяем, можно ли писАть
    - send()
    - select() проверяем, можно ли читать
    - recv

    Проверяю только результат select(), но не connect, send, recv.