Модераторы: Snowy, Poseidon, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сокеты, перехват 
:(
    Опции темы
Akella
Дата 11.9.2003, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



как известно, при посылке пакетов в сеть, концентратор (не коммутатор) посылает эти пакеты на все порты, а уж станция (комп) принимает эти пакеты если пакеты принадлежат для этой станции. Концентратор на читает заголовки пакетов и поэтому рассылает пакеты на все санции.
Внимание, вопрос:
- как получать эти пакеты даже если они не предназначены для этой станции, или это не на уровне программы, а на уровне Windows и, естевственно операционка не даст получить эти пакеты.
PM MAIL   Вверх
Baa
Дата 11.9.2003, 14:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



Еще как даст... поищи, такая тема уже была на форуме... сниффер Dayana писала...


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Akella
Дата 12.9.2003, 09:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



Я так понимаю, что если поставлю такие свойствах в TServerSocket, то смогу получать все пакеты?
Я пока не пробовал, но обязятельно попробую, только протокол TCP/IP, а обязательно указывать

Код

WSocket1.Addr := '0.0.0.0';
WSocket1.Port := '5003';
WSocket1.Proto := 'udp';
WSocket1.Connect;
Sleep(3000);
for i := 1 to 3 do
begin
//    WSocket1.Receive(@RcvMsg, 8024);
  WSocket1.ReceiveFrom(@RcvMsg, 8024, AddrSour, LengSourc);
end


или этот код будет лучше?

Код
var
 RcvPack : array [0..8024] of char;
 AddrSour : TSockAddr;
 i : integer;
 PackLen : integer;
 vWSAData : TWSAData;
 S : TSocket;
 SockAddr : TSockAddrIn;
 HostName : array[0..128] of char;
 pLocHost : PHostEnt;
 Flag : u_long;

begin
 FillChar(RcvPack, 8024, #0);
 GetHostName(HostName, 129);
 pLocHost := GetHostByName(HostName);
 WSAStartUp(MakeWord(2,2), vWSAData);
 S := Socket(AF_INET, SOCK_RAW, IPPROTO_IP);
 SockAddr.sin_family := AF_INET;
 SockAddr.sin_port := htons(5003);
 SockAddr.sin_addr.S_addr := PInAddr(pLocHost^.h_addr_list)^.S_addr;
 Bind(S, SockAddr, SizeOf(SockAddr));
 Flag := 1;
 ioctlsocket(S, SIO_RCVALL, Flag);
 for i := 1 to 10 do
   PackLen := recv(S, RcvPack, 8024, 0);
 CloseSocket(S);

PM MAIL   Вверх
Baa
Дата 12.9.2003, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



Второй предпочтительней... код не проверял, но свиду похоже на правду.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Akella
Дата 12.9.2003, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 4
Всего: 329



для первого примера:
что есть WSocket1, я знаю TServerSocket & TClientSocket и моя программа пстроена так: на форме лежат оба TServerSocket & TClientSocket, т.е. прога является и сервером и клиентом, в принцыпе программа простенькая, поддержка запуска внешних программ для подшучивания над моими бухгалтерами - есть программка "Rain" (могу скинуть) - при ее запуске экран "течет", как будто дождь пошел, что творится с бухгалтерами, смех да и только. Немного отвлекся.
Я так понимаю WSocket1 - это TWinSocket, а как его использовать? Какие отличия от TServerSocket & TClientSocket, оп... помоему TServerSocket & TClientSocket это наследники от TWinSocket.

для второго примера:
в какое событе этот код вставить?

PM MAIL   Вверх
Baa
Дата 12.9.2003, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

Репутация: нет
Всего: 12



В нажатие на кнопку, токо он при "Simple Cut&Paste"'е работать не будет smile.gif


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Сети"
Snowy
Poseidon
MetalFan

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делится вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.