Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2010, 00:31   #11
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

пост #3.
...по-поводу TIdSocketHandle сюда
или просто uses IdSocketHandle;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 12.01.2010 в 00:51.
raxp вне форума Ответить с цитированием
Старый 12.01.2010, 00:47   #12
feLoNy
Пользователь
 
Аватар для feLoNy
 
Регистрация: 11.01.2010
Сообщений: 31
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
чем вам не нравиться это событие... у вас версия Indy может быть иная, так что содержимое по обстоятельствам...
Код:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var msg   : TStringStream;
    s: string;
begin
 msg:= TStringStream.Create('');
 msg.CopyFrom(adata, sizeof(adata))
 msg.Position:= 0;

 s   := msg.DataString; // или в memo1.lines.add()
 msg.Free
end;
выдаёт ошибку на
Код:
msg.Position:= 0;
, удалил, выдаёт ошибку на
Код:
s   := msg.DataString;
в последнем случае пишет missing operator or semicolon
feLoNy вне форума Ответить с цитированием
Старый 12.01.2010, 00:49   #13
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

<;> однако
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.01.2010, 00:59   #14
feLoNy
Пользователь
 
Аватар для feLoNy
 
Регистрация: 11.01.2010
Сообщений: 31
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
<;> однако
упс и не заметил Запустил, но ничего не выдаёт...
перделал в Memo
Код:
procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var
msg: TStringStream;
begin
 msg:= TStringStream.Create('');
 msg.CopyFrom(adata, sizeof(adata));
 msg.Position:= 0;
 Memo1.Lines.Insert(0,'> '+msg.DataString);
 msg.Free
end;
Выдаёт:
Код:
> > > > > > >
т.е. клиент шлёт пустые пакеты и ждёт ответа какого то от сервера? или как?
feLoNy вне форума Ответить с цитированием
Старый 12.01.2010, 01:07   #15
feLoNy
Пользователь
 
Аватар для feLoNy
 
Регистрация: 11.01.2010
Сообщений: 31
По умолчанию

во вложених исходник игрового серва. файл отвечающий за трекинг естествено tracker.cpp
Вложения
Тип файла: rar bnetd.rar (375.0 Кб, 29 просмотров)

Последний раз редактировалось feLoNy; 12.01.2010 в 01:28.
feLoNy вне форума Ответить с цитированием
Старый 12.01.2010, 01:08   #16
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

Цитата:
т.е. клиент шлёт пустые пакеты и ждёт ответа какого то от сервера? или как?
ну... то что шлет вам клиент и чего он ждет нам не ведомо
зы: если клиент не ваш, соберите для теста своего и посылайте им пакеты для проверки адекватной

Цитата:
А сервер-то принимает пакеты длиной 464 байта... Но в Memo тишина.. Кроме стрелок которые я специально добавил для "индикации работы"
...а с чего вы решили, что символы будут печатаемые, может он шлет вам не asc коды.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.01.2010, 01:14   #17
feLoNy
Пользователь
 
Аватар для feLoNy
 
Регистрация: 11.01.2010
Сообщений: 31
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
ну... то что шлет вам клиент и чего он ждет нам не ведомо
зы: если клиент не ваш, соберите для теста своего и посылайте им пакеты для проверки адекватной


...а с чего вы решили, что символы будут печатаемые, может он шлет вам не asc коды.
я в сети не шарю почти а в с++ тем более
вот исходник клиента(пост выше)... файл tracker.cpp из сервера игры.
Если понимаете скажите что он шлёт?) и что ждёт?

Последний раз редактировалось feLoNy; 12.01.2010 в 01:28.
feLoNy вне форума Ответить с цитированием
Старый 12.01.2010, 01:31   #18
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

обычный сокет на api...

очевидно он шлет пакет со структурой <t_trackpacket> и вам на приемной стороне нужно создать такую-же структуру в которую передавать то, что приняли, например так:
Код:
type t_trackpacket = record
 ... тут структура
end;

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var packet: t_trackpacket;
begin
 adata.Read(packet, SIZEOF(packet));

 // выделяем из пакета
 packet.contact_email
 packet.users
вы привели не весь код клиента, подозреваю, что структура <t_trackpacket> описана в хэдерах (h- файлах).
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.01.2010, 01:40   #19
feLoNy
Пользователь
 
Аватар для feLoNy
 
Регистрация: 11.01.2010
Сообщений: 31
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
обычный сокет на api...

очевидно он шлет пакет со структурой <t_trackpacket> и вам на приемной стороне нужно создать такую-же структуру в которую передавать то, что приняли, например так:
Код:
type t_trackpacket = record
 ... тут структура
end;

procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
  ABinding: TIdSocketHandle);
var packet: t_trackpacket;
begin
 adata.Read(packet, SIZEOF(packet));

 // выделяем из пакета
 packet.contact_email
 packet.users
вы привели не весь код клиента, подозреваю, что структура <t_trackpacket> описана в хэдерах (h- файлах).
в том же посте только поздно догодался выложил полный исходник. тут папка common.
И привидете пожалуйста пример как отсылать пакеты...
Вложения
Тип файла: rar common.rar (167.8 Кб, 16 просмотров)
feLoNy вне форума Ответить с цитированием
Старый 12.01.2010, 01:43   #20
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

"ну, як вареник, так ще й до рота"... а взять литературку почитать и поиск по-форуму разве ничего не дал.

upd
-------

Код:
typedef struct
{
  bn_short	packet_version;      /* set to TRACK_VERSION, network byte order */
  bn_short	port;                /* port server is listening on, network byte order */
  bn_int	flags;               /* see below, network byte order */
  bn_byte	software[32];        /* example: Bnetd, NUL terminated */
  bn_byte	version[16];         /* example: 0.4, NUL terminated */
  bn_byte	platform[32];        /* Windows, Linux, etc., NUL terminated */
  bn_byte	server_desc[64];     /* description, NUL terminated */
  bn_byte	server_location[64]; /* geographical location, NUL terminated */
  bn_byte	server_url[96];      /* web address: http://..., NUL terminated */
  bn_byte	contact_name[64];    /* name of operator, NUL terminated */
  bn_byte	contact_email[64];   /* e-mail address of operator, NUL terminated */
  bn_int	users;               /* current number of users, network byte order */
  bn_int	channels;            /* current number of channels, network byte order */
  bn_int	games;               /* current number of games, network byte order */
  bn_int	uptime;              /* daemon uptime in seconds, network byte order */
  bn_int	total_games;         /* total number of games served */
  bn_int	total_logins;        /* total number of client logins */

  /* new versions will add fields to end of packet */
} t_trackpacket;
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 12.01.2010 в 01:46.
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
IdUDPServer indy 10 rangel Работа с сетью в Delphi 13 27.07.2011 11:03
IdUdpServer CrazyProgramer Работа с сетью в Delphi 9 21.07.2008 16:36
Ошибка в IdUDPServer Иллидан Работа с сетью в Delphi 1 24.02.2008 19:03
Не не знаю в чем проблема с IdUDPServer D@rk M@k Работа с сетью в Delphi 2 28.12.2007 15:46
idudpserver+mssql+adodataset vodila БД в Delphi 1 11.08.2007 09:56