Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Внизотправка пакета ( TcpClient ) Найти похожие ветки
← →
Дмитрий (2010-03-15 01:33) [0]Доброго времени суток. Я начинающий ( совсем начинающий ) программист и с одной задачкой зашёл в тупик. Задача такая :
имеется пакет в таком виде05 00 15 0C 00 00 00 00 00 00 00 00 00 00 00 00
и его нужно отправить на сервер ... Загвоздка у меня в том, что я не могу его как либо преобразовать, некоторые пакеты "в нормальном" виде у меня удалось отправить, а вот с пакетом такого вида проблеммаvar
i:Integer;
ip_con:String;
l:String;
begin
ip_con:="***.***.***.***;
for i:=38700 to 38710 do
begin
TcpClient2.RemoteHost:=ip_con;
TcpClient2.RemotePort:=IntToStr(i);
TcpClient2.Open;
if TcpClient2.Connected then
begin
showmessage("ЛяЛяЛяЛя");
TcpClient2.Sendln(??????????????????);
И вот как пакет 05 00 15 0С отправить через TcpClient2.Sendln(); у меня никак не получается.
Буду рад любой помощи )
← →
Eraser © (2010-03-15 05:15) [1]в tcp/ip с т.з. пользователя нет никаких пакетов, используй UDP, а лучше, для начала почитай книжку про сети и протоколы.
← →
Дмитрий (2010-03-15 07:30) [2]Ну а вообще, возможно будет отправить этот пакет ?
← →
Сергей М. © (2010-03-15 08:26) [3]Возможно.
И проще всего это сделать в блокирующем режиме работы клиентского сокета.
← →
NBAH1990 (2010-03-15 20:06) [4]Почему не использовать Client\Server-Socket ?
← →
RGV © (2010-03-19 06:15) [5]пробуй так:
procedure TForm1.Button1Click(Sender: TObject);
var
buf:array[0..255] of byte;
hexStr:string;
i,j:integer;
Function HextoDec(s:string):integer;
const
h = "123456789ABCDEF";
begin
result:=0;
s:=Uppercase(s);
result:=pos(s[1],h)*16;
result:=result+pos(s[2],h);
end;
begin
HexStr:=edit1.text;// "0500150C000000000000000000000000"
j:=0;
for i:=1 to Length(HexStr) do
if i mod 2 =1 then
begin
buf[j]:=HexToDec(Copy(HexStr,i-1,2));
inc(j);
end;
IdTCPClient1.Host:=HostEdit.text;
IdTCPClient1.Port:=PortSpinEdit.Value;
try
IdTCPClient1.Connect;
if IdTCPClient1.Connected then
begin
IdTCPClient1.WriteBuffer(buf,j);
IdTCPClient1.Disconnect;
end;
except
on e:Exception do Showmessage(e.Message);
end;
end;
не проверял но должно работать ;)
← →
RGV © (2010-03-19 06:22) [6]сори вот это
if i mod 2 =1 then
надо переписать на этоif i mod 2 =0 then
← →
RGV © (2010-03-19 06:22) [7]сори вот это
if i mod 2 =1 then
надо переписать на этоif i mod 2 =0 then
← →
Дмитрий (2010-03-20 04:48) [8]Ой, ребят, большое спасибо, помогла, правда немного по другому сделал ...
Но возник ещё вопрос, как сделать проверку на отклик сервера ... ?
( ну т.е. я отправил вот этот пакет, и жду пока сервер мне ответит ( пришлёт какой-нибудь пакет), и тогда в ответ, ему следующий пакет )
← →
Сергей М. © (2010-03-20 18:20) [9]
> Дмитрий (20.03.10 04:48) [8]
Ты не проникся про режим.
От выбранного режима зависит и решение.
← →
Дмитрий (2010-03-21 04:55) [10]Не совсем понял про режим
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.085 c