Delphi Socks5

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by 2pick, 10 Aug 2011.

  1. 2pick

    2pick Elder - Старейшина

    Joined:
    17 Mar 2007
    Messages:
    117
    Likes Received:
    38
    Reputations:
    2
    Есть у кого-то исходник на дельфе для Socks5 на winsock с полной реализацией протокола?
    Т.е. чтоб не только соединение connect держало, но так же UDP и BIND?
    Можно без авторизации
     
  2. realcoder

    realcoder Member

    Joined:
    9 Dec 2010
    Messages:
    226
    Likes Received:
    11
    Reputations:
    4
    тут slesh когдато писал socks сервер, но на asm. глянь на его сайте - там сорцы лежат. думаю если знаешь asm можно без проблем на дельфу переделать
     
  3. 2pick

    2pick Elder - Старейшина

    Joined:
    17 Mar 2007
    Messages:
    117
    Likes Received:
    38
    Reputations:
    2
    Асм к сожалению не занаю, но в дельфу он встраивается... :)
     
  4. 2pick

    2pick Elder - Старейшина

    Joined:
    17 Mar 2007
    Messages:
    117
    Likes Received:
    38
    Reputations:
    2
    На сайте не нашел то что надо было... вопрос в силе
     
  5. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    А что не даёт самому написать? RFC по Socks5 открыта и доступна даже в русском переводе. Протокол довольно простой, можно за день написать полную поддержку его.
    Даже в википедии и то описан socks5. Более подробнее можно тут почитать:
    http://rfc2.ru/1928.rfc
     
  6. 2pick

    2pick Elder - Старейшина

    Joined:
    17 Mar 2007
    Messages:
    117
    Likes Received:
    38
    Reputations:
    2
    rfc прочитал, вкурил и понял. Проблемы с winsock. Не знаю как на нем осуществить... если есть документы подробные по работе с ним, то был бы признателен. Пока им владею ровно на столько, чтобы понять как работает TCP connect, остальное для меня темная завеса :)
     
  7. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    в MSDN всё расписано. в гугле 1000 примеров.
    Тебе надо только:
    WSAStartup - инит либы
    socket - создать сокет
    bind - связать сокет с адресом и портом
    listen - начать прослушивать сокет
    accept - принимать входящие подключения
    recv - читать данные
    send - посылать данные
    select - ожидать/проверить события на сокете/сокетах
    closesocket - закрыть сокет.

    для начала этого будет достаточно для создания простого socks сервера
     
  8. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    937
    Likes Received:
    162
    Reputations:
    27
    Кроме как Winsock функций прийдется работать еще с Winapi. Например, после принятия соединения (accept) с ним нужно будет работать в новом потоке (BeginThread).
     
  9. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 Chrome~ BeginThread (она же _beginthread) это не WinAPI а RTL/CTR функция. Хотя можно и в одном потоке всё сделать, если правильно оформить select (но нагрузка большая будет)
     
    2 people like this.