|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.12.2006, 15:39 | #1 |
Регистрация: 06.12.2006
Сообщений: 3
|
TTcpServer и TUdpSocket блокируют порт
Здраствуйте!
Я являюсь админом одного игрового сервера. К сожалению игрушка не передает IP игроков и в ней нет возможности бана. В связи с огромным наплывом читеров возникла необходимость бана именно по IP. Через файрвол это очень гемморойно, поэтому попытался сам наваять прогу в Дельфях7. С Делфи знаком довольно давно, но именно сетевых приложений не писал ни разу. Итак: само описание проблемы. Делфи 7. Игрушка для связи использует 2 протокола - TCP\IP и UDP. Соответственно, для прослушивание порта используем 2 компонента из стандартных в Делфи7 - TTcpServer и TUdpSocket. Назначаем им хост и порт и вот тут начинаются проблемы. Такое впечатление, что при активации этих компонентов они блокируют порт. Т.е. При запуске сначала программы, а потом игрушки, игрушка не может запустить сервер(при этом программа может получать пакеты от клиентов). Если запустили сначала игрушку, а затем программу - программа ничего не принимает, хотя клиенты на сервер игрушки коннектятся вполне спокойно, т.е. идет активный обмен пакетами. Установка BlockMode в bmNonBlocking в обоих компонентах ситуацию не исправило Кроме того, возникает необходимость смотреть не только те пакеты которые поступают серверу, но и те, которые сервер пересылает клиенту. Подскажите, пожалуйста, как можно спокойно слушать порт не мешая при этом приложению. Если такая тема была - дайте пожалуйста ссылку, если для этого нужны нестандартные компоненты - подскажите где их можно скачать. Если не сложно - продублируйте ответ на hawk1[собака]inbox.ru |
06.12.2006, 22:05 | #2 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
запрос на подключение - программа анализатор - игра. Больше проверки производить не надо. вероятно у тебя программа отслеживае каждый пакет, что не нужно, необходимо авторизацию производить через делфи программу не более, тогда проблем не должно возникать.
|
07.12.2006, 08:58 | #3 | |
Регистрация: 06.12.2006
Сообщений: 3
|
Цитата:
Мне необходимо отлавливать по крайней мере 3 пакета: 1-ый, от клиента - серверу: идентификация, запрос на подключение. 2-ой, сервер-клиенту: разрешение на подключение, присваивание номера игроку. 3-ий, клиент-серверу: Передача ника. Ну и следить чтоб IP-шник был подключен. |
|
07.12.2006, 12:54 | #4 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
Я тебе предложил реализовать так -
Delphi программа получает запрос на авторизацию, проверяет все данные пользователя, потом, если он не в бане, передаёт эти данные серверу... Програамма будет не отлавливать сообщения, а получать их напрямую, т.е пользователь не будет иметь доступа к игровому серверу, пока его программа не подключит. А вот вопрос реализации другая тема, с этим тебе придёться разбираться самостоятельно... |
07.12.2006, 17:08 | #5 | |
Регистрация: 06.12.2006
Сообщений: 3
|
Цитата:
|
|
07.12.2006, 23:29 | #6 |
Александр
Администратор
Регистрация: 28.10.2006
Сообщений: 17,501
|
Нет не весь траффик, а только авторизацию, запрос на подключение.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
COM-порт | daunito | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 7 | 15.01.2009 18:50 |
TTcpServer и client | JoanM | Работа с сетью в Delphi | 3 | 07.03.2008 17:23 |
порт ps/2 | _Dmitry | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 01.10.2007 21:28 |
COM порт, или LPT... | _riddik | Общие вопросы Delphi | 1 | 08.06.2007 22:33 |
СОМ порт | SERG1980 | Общие вопросы Delphi | 3 | 17.05.2007 08:06 |