Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Visual C++ / MFC / WTL > Вопрос о RFC 1928


Автор: papay 09.05.06, 11:11
Вот читаю русскую версию RFC 1928. Ссылка:
http://www.codenet.ru/webmast/socks51.php

У меня появился вопрос:
Когда все приветственные сообщения переданы, коннекты установлены, клиент посылает запросы. Их шаблон:

+----+-----+-------+------+----------+----------+
|VER | CMD | RSV | ATYP | DST.ADDR | DST.PORT |
+----+-----+-------+------+----------+----------+
| 1 | 1 | X'00' | 1 | Variable | 2 |
+----+-----+-------+------+----------+----------+

Но гже же поле DATA ??? Где главное поле со всеми данными ?

В UDP соединении таковое имеееться:

+----+------+------+----------+----------+----------+
|RSV | FRAG | ATYP | DST.ADDR | DST.PORT | DATA |
+----+------+------+----------+----------+----------+
| 2 | 1 | 1 | Variable | 2 | Variable |
+----+------+------+----------+----------+----------+

Обьясните пожалуйста!

Автор: papay 09.05.06, 16:27
Переформулирую вопрос:

И так я хочу полностью разобрать как устроены сокс сервера и клиенты.

Есть русский RFC, находиться сдесь:
http://www.codenet.ru/webmast/socks51.php

Понял практически все.
И так клиент обращаеться серваку, они приветствуют друг друга, рассказывают друг другу какая версия протокола и так далее.

И так все доходит до обмена данными. Клиент посылает запрос на открытие какогото хоста и порта, но где же сами данные, которые должны передаться конечному серверу ???

ДЛя UDP клиентов я видел поле DATA, для TCP - нет.

И еще вопрос. В каком формате сервер отправляет то, что ему ответил конечный сервер ?

Помогите пожалуйста с этим, т.к. мой проэкт умирает !

Зарание благодарен !

Автор: Kill_em_all 09.05.06, 19:25
А в TCP ты просто устанавливаешь соединение через сокет.
Ну например, ты общался с соксом через сокет s и установил соединение,
после этого ты просто отправляешь и принимаешь данные через этот сокет

send(s, buf, strlen(buf), 0);

и т.д. и т.п.

Автор: Oleg2004 09.05.06, 20:43
Цитата
Но где же поле DATA ??? Где главное поле со всеми данными ?

Его в запросе просто нет - так как обмен информацией между sock-клиентом и sock-сервером предназначен только для установки связи между ними.
Как только связь такая установлена, sock-cервер все последующие IP-пакеты от клиента просто пересылает по тому адресу и на тот порт, о которых просил клиент, и проделывает то же самое с полученными в адрес клиента данными.

Автор: papay 09.05.06, 21:07
спасибо ! вы очень помогли ! РЕСПЕКТ люди ! С праздником вас !

Автор: arcsupport 06.06.06, 21:56
Может эту тему перенести юних? там с этим быстрее разбирутся

Автор: trainer 07.06.06, 05:58
Цитата arcsupport @
Может эту тему перенести юних? там с этим быстрее разбирутся
Ты на дату последнего сообщения смотрел. Уже почти месяц, как разобрались.

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)