Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
6-1216448798
Alex_C
2008-07-19 10:26
2010.08.27
HttpOpenRequest - получаю Bad request


4-1232550179
Magedon
2009-01-21 18:02
2010.08.27
Как обновить часть экрана?


11-1215697287
KOLBOSS
2008-07-10 17:41
2010.08.27
как добавить страницу в RichEdit


2-1267982007
NBAH1990
2010-03-07 20:13
2010.08.27
Ошибка при передачи данных по TCP протоколу


4-1234856626
Encore
2009-02-17 10:43
2010.08.27
Handle процесса





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский