![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TCPClient [D7]
plotn © (2007-07-20 10:09:00)Добрый день, господа. Я сразу извиняюсь за "ламерский" вопрос, но я правда не знаю как мне быть.
Проблема: мне нужно подключиться к TCP серверу, сказать ему "превед", он мне на это ответит. Все. Т.е. мне нужны ответные данные. Как я поступаю:
tcpClientCS: TTcpClient;
tcpClientCS.RemoteHost:='127.0.0.1';
tcpClientCS.RemotePort:='30100';
tcpClientCS.Connect;
посылаем данные:
if tcpClientCS.Connected then
begin
ss:=TStringStream.Create('');
i:=17; ss.Write(i,4);
i64:=0; ss.Write(i64,8);
i:=0; ss.Write(i64,4);
s:=ss.DataString;
tcpClientCS.SendBuf(pchar(s)^, length(s), 0);
end;
Обработчик клиента:
procedure TForm1.tcpClientCSReceive(Sender: TObject; Buf: PAnsiChar;
var DataLen: Integer);
begin
Memo1.Lines.Add('read');
memo1.Lines.Add(string(Buf));
end;
Проблема - в обработчик Receive данные не доходят!! Пробовал с инди компонентами - примерно тоже самое.
TCP сервер разраборан на .net моим знакомым, он же сделал пример, который читает из него данные, пример работает.
Более того, на сервере он сделал лог - что в него приходит и что уходит. Там явно видно что к нему доходит то, что я ему посылаю и он пишет туда же отправленный пакет. Но почему пакет не доходит до меня, я не могу понять.
plotn (2007-07-20 10:38:00) [1]Спасибо, просто не знал этого ;) вопрос снят!
Сергей М. (2007-07-20 10:17:00) [2]
> почему пакет не доходит до меня, я не могу понять
Доходит. Просто ты его не читаешь.
Событие OnReceive будет возбуждено не ранее чем ты вызовешь метод ReceiveBuf. а ты его вообще не вызываешь.