![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сокеты [D7, WinXP]
bober © (2006-09-08 13:13:00)Добрый день!
Как правильно отследить поток на сервере?
на клиенте делаю
MySocket: TWinSocketStream;
c:='тест';
MySocket := TWinSocketStream.Create(Socket,60000);
MySocket.Write(c,Length(c)+1);
MySocket.Free;
на сервере
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
mes:=Socket.ReceiveText; и тут получаю mes=4k независимо от того что отправлял на клиенте.
есть мысль что нужно обрабатывать
ServerSocket1GetThread
но это событие у меня почему то не наступает.
Заранее спасибо.
Slym(RO) (2006-09-11 04:15:00) [1]procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var s:string;
begin
s:=Socket.ReceiveText;
ShowMessage(IntToStr(length(s))); -вот сдесь выдает правильную длину передаваемого текста
ShowMessage(s); - сдесь уже не пусто
medved_68 (2006-09-08 17:26:00) [2]
> Добрый день!
> Как правильно отследить поток на сервере?
> на клиенте делаю
> MySocket: TWinSocketStream;
>
> c:='тест';
> MySocket := TWinSocketStream.Create(Socket,60000);
> MySocket.Write(c,Length(c)+1);
> MySocket.Free;
bober Попробуй отправлять так:
MySocket.Write( c[1],Length(c));
глядишь и вопросы пропадут :)))
Сергей М. (2006-09-08 13:59:00) [3]
> сдесь уже пусто - почему?
Потому что предыдущим ReceiveText() ты уже получил все что было доступно в буфере приема на тот момент.
> последующих событий почему то не возникает
Сколько было отправлено, столько ты и получил.
Значит, передатчик у тебя реализован неверно.
bober (2006-09-08 13:48:00) [4]последующих событий почему то не возникает
procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
ShowMessage(IntToStr(length(Socket.ReceiveText))); -вот сдесь выдает правильную длину передаваемого текста
ShowMessage(Socket.ReceiveText); - сдесь уже пусто - почему???? даже 4К в таком варианте не появляются.
Сергей М. (2006-09-08 13:34:00) [5]
> и тут получаю mes=4k независимо от того что отправлял на
> клиенте.
Остальное придет позже, при последующих событиях OnClientRead
> есть мысль что нужно обрабатывать
> ServerSocket1GetThread
Не путай thread (поток кода) со stream (поток данных)