Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

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

 
Инкогнито   (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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.022 c
4-1074261583
MPS
2004-01-16 16:59
2004.03.28
Как получить список процессов в WinNT 2000?


3-1077778760
San
2004-02-26 09:59
2004.03.28
Как поставить задержку всплытия hint в DBGrid е


1-1078617415
Lena19
2004-03-07 02:56
2004.03.28
указатель на переменную


1-1078396427
Sphinx
2004-03-04 13:33
2004.03.28
OnMouseEnter and OnMouseExit


3-1077493659
HMT
2004-02-23 02:47
2004.03.28
TIBEvents..Что-то не работает :-(