![]() |
|
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]()
|
|
| Zmeyka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 2.5.2006 Репутация: нет Всего: нет |
Не знаю как правильно будет сказать, но может быть подскажете принцип организации серверного сокета? Уже неделю мучаюсь никак не запустить сокет на прослушивание...
До чего дошел... не знаю правильно или нет, но всеже... 1) Инициализация WSAStartUp.. 2) Создаю сокет (Socket1:TSocket SockAddr:TSockAddr;) Socket1:=Socket(Internet,Stream,0); FillChar(SockAddr,SizeOf(SockAddr),0); SockAddr.Sin_Family:=Internet; SockAddr.Sin_Port:=Htons(80); 3) Вроде как прослушиваю сокет (точнее пытаюсь) (Pr,Pr1:Integer) Pr:=Bind(Socket1,SockAddr,SizeOf(SockAddr)); Pr1:=Listen(Socket1,1); До этого момента по крайней мере ошибок не выдает... 4) Далее как я понял надо использовать функцию Accept И пробую это делать: Pr3:=Accept(Server,Nil,nil); Вот с фуекцией Accept Самые непонятки... как я понял из примеров, второй параметр функции Accept это переменная Record типа TSockAddr и там должны отображаться данные клиента если есть соединение..., но сколько не бился, так и не смог задать эту переменную... дельфя все рукагется о несоответствии типов. Может кто подскажет убогому, правильную последовательность действий при создании серверного сокета и в какие функции и какие даные передавать? Кроме всего прочего никак не пойму: Каким образом сокет постоянно висит на прослушивании? Он же 1 раз запускается и вырубается через какое то время? Пробовал зацикливать, но тогды приложение виснет черзе некоторое время... |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
1. запускаешь листен, и ты должен как то среагировать на само подключение , если оно произошло только тогда вызывать нужно
после первого же подключения у тя очередь заканчивается. эти параметры заполняет система, в них надо указать место куда писать , если там нил ,значит те эти данные не надо -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Zmeyka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 2.5.2006 Репутация: нет Всего: нет |
не понял... можно еще раз?
WSAStartUp($101,WSAData)=0; Socket1:=Socket(2,1,0); SockAddr.Sin_Family:=2; SockAddr.Sin_Port:=80; Pr1:=Bind(Socket1,SockAddr,SizeOf(SockAddr)); Pr2:=Listen(Socket1,1); >>1. запускаешь листен, и ты должен как то среагировать на само >>подключение , если оно произошло только тогда вызывать нужно >>Accept. Дык никакого подключения-то не происходит... Bind и Listen всегда выдают -1, пробую зациклить эти Bind и Listen и приложение виснет. Или с Локалхоста оно не подконектиться к этому сокету? |
|||
|
||||
| Zmeyka |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 2.5.2006 Репутация: нет Всего: нет |
Мде... не знаю почему но заработало.... по крайней мере коннект появился... извиняюсь за беспокойство. Сенк за помощь.
|
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 13 Всего: 146 |
Пжалста -------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
![]()
|
| Правила форума "Delphi: WinAPI и системное программирование" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |