![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Felt |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 76 Регистрация: 14.6.2004 Репутация: нет Всего: нет |
Два дня уже бьюсь над проблемой. Horrific писал как работать с сокетами на низком уровне, но конкретных примеров чего то я так и не могу найти. Я пишу такой вот код:
program Project1; uses Windows, WinSock2; var Msg: TMsg; Info: TWSAData; Handle: Cardinal; Name: TSockAddr; S: String; begin WSAStartup(MakeWord(2, 0), Info); Name.sin_port:=htons(1540); Handle:=Socket(AF_INET, SOCK_STREAM, IPPORT_ECHO); Connect(Handle, @Name, SizeOf(Name)); Listen(Handle, SOMAXCONN); while GetMessage(Msg, 0, 0, 0) do begin Recv(Handle, S, Length(s), MSG_OOB); TranslateMessage(Msg); DispatchMessage(Msg); end; end. Здесь я собрал практически все описанные челом функции, но так и не смог открыть порт и ждать данные, приходящие от клиента. А суть проги такая. Сервер, написанный с помощью API ждет прихода строки 'HelloWorld' от клиента, который написан с использованием компонента ClientSocket. Как это сделать? P. S. Количество соединений к серверу будет не более 1. |
|||
|
||||
| stab |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1839 Регистрация: 1.1.2003 Репутация: 14 Всего: 48 |
Пара коментариев. 1. Сервер настроен на порт 80 (http), т.е. запустив программу и введя в IE 127.0.0.1 мы должны увидеть сообщение следующего содержания:
2. Сервер работает в так называемом блокирующем режиме (blocking mode), это значит, что на строчке
3. Если требуется серьезно разобраться в сокетах, то рекомендую купить книжку или найти чего-нить в инете, т.к. библиотека сокетов довольно обширна и временами без ста грамм в хитрых функциях не разобраться. Там же можно подчерпнуть знания о неблокирующих соеденениях (non-blocking, asynchronous connections). Самый трудный, но и самый полезный путь -- покапаться в исходниках TClientSocket, TServerSocket, т.д. (ScktComp.pas) -------------------- 6, 6, 6 - the number of the beast. |
||||||
|
|||||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |