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

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

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

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

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

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

заведите скажем единицу в packet_version на клиенте (си- шном) и посмотрите, что измениться.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 12.01.2010, 17:42   #32
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а можно посмотреть на структуру в С
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.01.2010, 18:05   #33
feLoNy
Пользователь
 
Аватар для feLoNy
 
Регистрация: 11.01.2010
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а можно посмотреть на структуру в С
код в с выложен выше в постах во вложениях.
Вопрос такой. Как показания разделить на 16777216 ?
точнее делить нужно Channels, Users, uptime и ещё некоторые а вот что с портом делать незнаю даже
И как Byte перевести в String?

Последний раз редактировалось feLoNy; 12.01.2010 в 18:09.
feLoNy вне форума Ответить с цитированием
Старый 12.01.2010, 18:42   #34
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
И как Byte перевести в String?
IntToStr
Цитата:
Вопрос такой. Как показания разделить на 16777216 ?
пишу в типах:
integer:=integer div 16777216
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.01.2010, 18:51   #35
feLoNy
Пользователь
 
Аватар для feLoNy
 
Регистрация: 11.01.2010
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
IntToStr

пишу в типах:
integer:=integer div 16777216
Пишу...
Цитата:
[Error] Unit1.pas(36): ',' or ':' expected but ':=' found
[Error] Unit1.pas(37): '..' expected but identifier 'packet_version' found
[Error] Unit1.pas(37): Low bound exceeds high bound
[Error] Unit1.pas(76): Undeclared identifier: 'packet_version'
[Fatal Error] Tracker.dpr(5): Could not compile used unit 'Unit1.pas'
по поводу inttostr не катит...
Цитата:
[Error] Unit1.pas(85): There is no overloaded version of 'IntToStr' that can be called with these arguments
[Fatal Error] Tracker.dpr(5): Could not compile used unit 'Unit1.pas'
Поэтому и спрашиваю.
feLoNy вне форума Ответить с цитированием
Старый 12.01.2010, 22:07   #36
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а как вы их применяли покажите?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.01.2010, 23:45   #37
feLoNy
Пользователь
 
Аватар для feLoNy
 
Регистрация: 11.01.2010
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
а как вы их применяли покажите?
ну если я вас правильно понял... наверн всё таки не туда пихаю...
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdUDPBase, IdUDPServer,
  ComCtrls, IdSocketHandle;

type
  TForm1 = class(TForm)
	//integer:=integer div 16777216;
    IdUDPServer1: TIdUDPServer;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;

 ......

 Memo1.Lines.Insert(0,'> Users:'+IntToStr(packet.users));
 Memo1.Lines.Insert(0,'> Channels:'+IntToStr(packet.channels));
 Memo1.Lines.Insert(0,'> Games:'+IntToStr(packet.games));
 Memo1.Lines.Insert(0,'> Uptime:'+IntToStr(packet.uptime));
 Memo1.Lines.Insert(0,'> Games'+IntToStr(packet.total_games));
 Memo1.Lines.Insert(0,'> Logins clients'+IntToStr(packet.total_logins));
 Memo1.Lines.Insert(0,'>------------');
 //Memo1.Lines.Insert(0,'> URL'+IntToStr(packet.server_url));
 //Memo1.Lines.Insert(0,'> Owner'+IntToStr(packet.contact_name));
end;



end.
последнии изменения закоментированны.

Последний раз редактировалось feLoNy; 13.01.2010 в 03:08.
feLoNy вне форума Ответить с цитированием
Старый 13.01.2010, 03:06   #38
feLoNy
Пользователь
 
Аватар для feLoNy
 
Регистрация: 11.01.2010
Сообщений: 31
По умолчанию

Всё таки нашел выход.
Код:
var
packet: t_trackpacket;
a,b,c: integer;
begin
 a:= 16777216;
 adata.Read(packet, SIZEOF(packet));
 b:= packet.uptime div a;
 c:= packet.channels div a;
только вот теперь проблемма... доходя до максимального значения integer идёт обратно в минус... просто до этого не дожидался... как можно поправить?
и так же вопрос по поводу чё с портом и как bytes привести к string остаёться актуальным.
feLoNy вне форума Ответить с цитированием
Старый 13.01.2010, 10:44   #39
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

вернулся к вашей теме...
1- превышение идет с клиента, дела поправлять нужно там
2- по Memo1.Lines.Insert(0 , - в "0" позицию все... почему не использовали add из моего закомментенного, все равно clear делаете
3- выделять integer на время маловато, в структуре на клиенте и сервере нужно перейти хотя-бы на extended... это касается и некоторых других
4- array of byte - это массив asc символов со стороны клиента, эквивалентно of char, значит - берем каждый элемент массива и делаем ему chr() или char и формируем строку суммированием полученнных символов...
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 15.01.2010, 14:16   #40
feLoNy
Пользователь
 
Аватар для feLoNy
 
Регистрация: 11.01.2010
Сообщений: 31
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
вернулся к вашей теме...
1- превышение идет с клиента, дела поправлять нужно там
2- по Memo1.Lines.Insert(0 , - в "0" позицию все... почему не использовали add из моего закомментенного, все равно clear делаете
3- выделять integer на время маловато, в структуре на клиенте и сервере нужно перейти хотя-бы на extended... это касается и некоторых других
4- array of byte - это массив asc символов со стороны клиента, эквивалентно of char, значит - берем каждый элемент массива и делаем ему chr() или char и формируем строку суммированием полученнных символов...
1 ну клиент не я разрабатывал)
2 очищать я стал недавно, просто оставил insert, потом поправлю на add
3 понимаю. но как то же офф трекер работает? О_о
4 а вот про это поподробнее можно?
извеняюсь пропал, так как разболелся, валялся не вставая с постели.
feLoNy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 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