| Структура программирования, программирование, языки программирования, книги программирование | На сайте представлена информация про программирование в Интернете и работу |
|
Глюк StringGrid&UpDown Read some bytes?, Как прочитать несколько байт из файла? Ошибка в запросе..., Не могу понять в чём тут дело: Перезагрузка и отключение, Перезагрузка и отключение компьютера... Использование IActiveScript в дельфи Ошибка в запросе..., Не могу понять в чём тут дело: How to call method from "protected" section?, TWinControl.PaintControls, thnx. как прописать в делфи связь с тифлексом?????, срочно!!! ААААААААААААААААААААА!!! Хочу показывать список дочерн.окон MDI., Список дочерних окон Меню, Создание красивоо меню... Проблема печати из-под Quick-report, Не печатается QuickReport по-нормальному Принудительная перерисовка фона, TWinControls Поиск, Объясните пожалуста...( Как файл из под dos перевести в excel? OLE (MS Word), только чтение Dll не включается в прект, запуск программы на компе без Delphi Tpaintbox, Затирание изображения фокус в DBGrid, (Focus, а не Дэвид Коперфильд) QReport, QRShape какин программеры больше нужны и у кого больше з/п, совет нужен Работа с COM портами, Работа с COM портами Печать, Вопрос о печати Memo и строки, i need help you Как сделать активной одну из дочерних окон MDI ?, Активность дочерних окон MDI ActiveX, Регистрация Pascal и Delphi, Почему бы не разделить эти два языка? FormatMessage, API-функция Изменить Encoding в IE, Как реализов.этот пункт контекст.меню? Поймать клик в TEmbeddedWB, Как поймать клик на ХТМЛ-форме? Как распечатать Хранитель экрана, Откл/Вкл IExplor, Как узнать, что страница загружена? Выключить звук в системе, Как? Как Вы относитесь к курящим девушкам? свойство DateTimePicker, DateTimePicker и системное время INet, Заполнить форму. Удаление, Удаление самой себя Как из Memo1 прочитать последнюю строку Как спрятать прогу от TaskManager в WinXP, Как спрятать прогу от TaskManager в WinX Расчет дат Отсчет времени. Как Вы относитесь к курящим девушкам? Как можно записать в TIFF-File дополнительный Tag DLL и командная строка., Создание DLL Как по нажатию кнопки открыть Word? tmemo, редактирование в tmemo Delphi 7, Кто что может сказать о седьмых Дельфях? Как добыть текст, из вордовского файла Компонент TDBChart Последовательная склейка, Подскажите как быстро реализовать Снова об определении цвета Переменная ограниченного типа Как "достучаться" до размера шрифтов в Windows? WM_LBUTTONDOWN, что я делаю не так? Отключение мышки и клавиатуры TRichEdit, Прокрутка Снова сокеты! Опять эта ошибка.... Разыскивается компонент., особые приметы внутри Вопрос по IDE Delphi 7, Не сохраняется последнее положение. Скриншоты API функции Передача массивов!, Как передать массив как параметр? DLL?, помогите Сетевое окружение Модемы, Набор номера Архивация данных Как в Delphi программно определить текущую дату? Дельфи компонент для подкраски синтаксиса Базы данных, !!!Соединение таблиц |
Платные хостинги Раскрутка сайта Книги по программированию Снова сокеты!
- У меня вот такая проблема. От одного устройства (модема) по лану приходят пакеты. Просматривая снифером, вижу порт, IP отправителя и IP получателя. Но они отличны от IP самого устройства и IP который определила в Local Area Connection. Это модуляция пакетов через модем. Задача получать эти пакеты. Открываю сокет TWSocket. Протокол udp, Addr = '0.0.0.0', т.е от любого клиента. И ставлю номер порта, который показал мне снифер. Т.к. протокол udp, то после соединения пользуюсь методом RecieveFrom, который получает пакет в буфер и также возвращает адрес отправителя.Пакеты модем посылает, а сокет ничего не получает. Я с этим совсем мало работала. Может кто-нибудь знает в чем ошибка?Код проверки пока такойКод 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); endhighlightSyntax('delphimYzJjY','delphi');Спасибо! Это сообщение отредактировал Dayana - 4.2.2003, 19:31 - Я вот нашла, чтобы настроить сокет на прием пакетов, надо установить флаг PROMISC - установка режима перехвата на сетевой карте.Есть исходники на С++. Там используются функции API. Может кто знает, как такой флаг установить, пользуясь TWSocket, и есть ли он там вообще? - А кто тебе мешает создать сокет руками через апи? без компонентов.з.ы. с вероятностью в 99% могу сказать, что в твоем компоненте выставить PROMISC низя. - Да.... полностью с Baa согласен.... я сейчас тоже занимаюсь этими вопросами, и попробовав кучу компонентов, пришел к выводу, что лучше при работе с сокетами использовать API, это надежно, позволяет программировать без ограничений, хотя долго и утомительно.... - И написала у себя вот такQUOTE const CmdFlag : u_long = 1; SIO_RCVALL = $98000001;begin FillChar(RcvMsg, 8024, #0); WSocket1.Addr := '0.0.0.0'; WSocket1.Port := '5003'; WSocket1.LocalPort := '5003'; WSocket1.Proto := 'udp'; WSocket_ioctlsocket(WSocket1.HSocket, SIO_RCVALL, CmdFlag); WSocket1.Connect; Sleep(3000); for i := 1 to 3 do begin WSocket1.ReceiveFrom(@RcvMsg, 8024, AddrSour, LengSourc); end;end;WSocket_ioctlsocket - это аналог ioctlsocket. Но все равно ничего не работает.Код на С++ у меня нет возможности проверить.В принципе handle сокета я передаю, и нет разницы как он был создан через API или как компонент. - Pegas, писала ответ с тобой одновременно.Ты не мог бы дать основные ф-ции API, которые позволяют создать сокет и работать с ним? - Если я не ошибаюсь (давно это было), то в IFF_PROMISC mode может выставится токо RAW сокет. - Открой файл WinSock или IdWinSock2(Если Delphi 7). Тама есть эти самые функции. - А так основные функции это - Socket()Bind()CloseSocket()Accept()Send()Recv()SendTo()RecvFrom()Ну и их асинхронные аналоги(с приставкой WSA).Причем перед их использованием необходимо загрузить WinSock WSAStartUp()и потом выгрузитьWSACleanUp;Разумеется это не полный список функций, но для начала и их хватит) - открываю его как RAW.... но все равно ничего не получает...:-( - <Spawn>, спасибо! Уже нашла... - Dayana попробуй порт выставить в 0... з.ы. дома буду, че-нить придумаю... - Baa, спасибочки! - Baa, нашла в чем была ошибка. Совсем упустила из виду, что на компе установлены 2 сетевые карты. Одна с динамическим DNS для выхода в локальную сеть. А другая, с которой мне надо работать, с определенным IP и SUBNET MASK. Если отключаю локальную сеть и подключаю туда модем, т.е. в сетевую карту с динамическим DNS, то все работает. Но мне надо работать с другой сетевой картой. Есть ли какая-нибудь возможность указать сокету с каким адаптером работать? - Дык при бинде ж указываешь ему на какой ип...У тя gethostbyname возвращает первичный сетевой адрес, а вот вторичный остается не у дел... Пробуй сама заполнить структуру с адресом. |