Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

Адрес отправителя   Найти похожие ветки 

 
Инкогнито   (2004-01-16 18:30) [0]

Здраствуйте МАСТЕРА!
   Подскажите пожалуйста, как узнать адрес машины, с которой       пришли данные(WinSock).Ведь в заголовке IP-пакета есть этот       адрес.
Зарание спасибо ...


 
Rouse_ ©   (2004-01-16 19:21) [1]

Конечно есть, а чем ты получаешь пакет?


 
Инкогнито   (2004-01-16 21:24) [2]

Дык какая разница чем я получаю етот пакет. Мне ж в данной ситуации не пакет нужет, а адрес его отправителя.
WinSock предоставляет возможность получить этот адрес?


 
Rouse_ ©   (2004-01-16 22:17) [3]

Предоставляет.
Тебе расписать структуру пакета со смещениями и структурами, или ты хочешь услышать что-то другое...

PS: Так чем получаешь пакет?


 
Nikolay M. ©   (2004-01-17 00:23) [4]


> Дык какая разница чем я получаю етот пакет. Мне ж в данной
> ситуации не пакет нужет, а адрес его отправителя.

Прямо как в анекдоте: "На крыше сидят два зеленых слона, сколько мне лет?" :)

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


 
Rouse_ ©   (2004-01-17 00:29) [5]

> Под пытками не скажу, каким образом получаю данные
5 балов!!! Даже в потрепаловку не будем ехать, пусть учатся ;)))


 
Инкогнито   (2004-01-17 08:31) [6]

Я получаю получаю данные recv. Но ведь я тем самым не пакет получаю, а его поле данных.

Rouse_ [1] >
//Тебе расписать структуру пакета со смещениями и структурами, //или ты хочешь услышать что-то другое...

Структуру пакета со смещениями я знаю. Мне нужна процедура(функция), которая бы мне возвращала либо заголовок пакета(пусть даже весь пакет, но с заголовком), либо просто поле оттуда - адрес отправителя ...

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


 
Инкогнито   (2004-01-17 12:04) [7]

Спасиба! я кажется понял как заголовок извлекать ...
У меня возникли неточности со структурой пакета.
Rouse_ [3]:
 > Тебе расписать структуру пакета со смещениями и структурами,или ты хочешь услышать что-то другое...

Да, распиши пожалуйтса структуры IP и UDP.
Благодарю.


 
Verg ©   (2004-01-17 12:32) [8]

Для датаграмм (типа UDP или просто сивольный сокет IP) нужно применять recvfrom. Она и данные прочтет и адрес отправителя.

В остальных случаях:
1. Клиентский сокет SOC_STREAM - без комментариев :)
2. Серверное TCP соединение)
  Ну, во-первых ф-ция accept при установлении соединения вернет адрес клиента.
3. В любом случае есть getpeername


 
Nikolay M. ©   (2004-01-17 12:33) [9]

http://ava.org.ua/topics/printable/?read=155
Ну и, RFC, конечно.
"Sockets 2 reference" (MSHelp\SOCK2.HLP) тоже полезно, если не смотрел еще.


 
Verg ©   (2004-01-17 14:11) [10]


> Nikolay M. ©   (17.01.04 12:33) [9]
> http://ava.org.ua/topics/printable/?read=155


Замечательная статейка.

Хотелось бы только добавить:
Copyright (c) by Alexander Pevzner (pzz@pzz.msk.ru), 1998-1999


 
Verg ©   (2004-01-17 14:13) [11]

Просто вот реальное начало оригинала:

****************************************************************************
 ВВЕДЕНИЕ В УСТРОИСТВО И РЕАЛИЗАЦИЮ TCP/IP

 Version 1.0.1
 Copyright (c) by Alexander Pevzner (pzz@pzz.msk.ru), 1998-1999

 Этот текст может свободно распостраняться и публиковаться. При
 распостранении и публикации обязательна ссылка на автора. Если в
 оригинальный текст были внесены изменения, этот факт должен быть
 указан.

 АВТОР НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ДОСТОВЕРНОСТЬ ИНФОРМАЦИИ,
 ИЗЛОЖЕННОЙ В ДАННОМ ТЕКСТЕ И ЗА ПОСЛЕДСТВИЯ ЛЮБОГО ИСПОЛЬЗОВАНИЯ
 ДАННОГО ТЕКСТА.
****************************************************************************

1. Общие слова.

  Сетевой порядок байт - другой, чем у интеловских процессоров.
  Сначала идет старший байт, далее по порядку. Это относится и
  к 16-битным, и к 32-битным словам. Когда програмируют на C,
  обычно обзаводятся platform-depended функциями преобразования:
      u_short htons ( u_short ); - host-to-network short
      u_short ntohs ( u_short ); - network-to-host short
      u_long htonl ( u_long );   - host-to-network long
      u_long ntohl ( u_long );   - network-to-host long
  В unix"овской библиотеке и в winsock"е такие фунции являются
...


 
Инкогнито   (2004-01-17 14:25) [12]

Спасибо ВАМ! помогли разобраться.
Удачи всем.


 
SammIk ©   (2004-01-18 15:06) [13]

ГА
getpeername
The Windows Sockets getpeername function retrieves the name of the peer to which a socket is connected.

int getpeername (
 SOCKET                 s,                    
 struct sockaddr FAR    *name,  
 int FAR                *namelen            
);
Parameters
s
[in] Descriptor identifying a connected socket.
name
[out] The structure that receives the name of the peer.
namelen
[in/out] Pointer to the size of the name structure.


 
Nikolay M. ©   (2004-01-19 12:51) [14]


> Verg ©

Ну, это уже на совести плагиаторов.
Если автору ветки ссылка помогла - это главное. Конечно, лучше и правильнее, чтобы это был первоисточник, просто привел ту ссылку, которую нашел.


 
Verg ©   (2004-01-19 13:07) [15]


> Nikolay M. ©   (19.01.04 12:51) [14]
>
> > Verg ©
>
> Ну, это уже на совести плагиаторов.
> Если автору ветки ссылка помогла - это главное. Конечно,
> лучше и правильнее, чтобы это был первоисточник, просто
> привел ту ссылку, которую нашел.


Я и не спорю.
Просто впервые увидел эту статью опубликованной и без указания авторства. Казалось бы чего сложного, да? Просто, хотя бы в знак уважения....

Кстати именно в оригинале даны исходники реализации основных компонент стека ip-arp-icmp-udp по которым можно было осваивать все это дело на практике. Пусть эта реализация и упрощенная, но в деле освоения это даже плюс.
Пять поваренных книг не заменят однажды самостоятельно приготовленного блюда, однако.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.029 c
3-1076937543
Jony
2004-02-16 16:19
2004.03.28
Кнопка ebsUpDownEh в DBEditEh


1-1078936918
Тимохов
2004-03-10 19:41
2004.03.28
TMetafile


14-1077629736
kaif
2004-02-24 16:35
2004.03.28
Отставка правительства?


14-1077790429
Иксик
2004-02-26 13:13
2004.03.28
Знатокам шахматного софта


1-1078724715
Артем К.
2004-03-08 08:45
2004.03.28
Как создать свой скролл бар и присобачить его к форме





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский