Вниз
Скачать: CL | DM;

сокеты   Найти похожие ветки 

← →
bober   (2006-09-08 13:13) [0]

Добрый день!
Как правильно отследить поток на сервере?
на клиенте делаю
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
но это событие у меня почему то не наступает.  
Заранее спасибо.


← →
Сергей М. ©   (2006-09-08 13:34) [1]


> и тут получаю mes=4k независимо от того что отправлял на
> клиенте.


Остальное придет позже, при последующих событиях OnClientRead


> есть мысль что нужно обрабатывать
> ServerSocket1GetThread


Не путай thread (поток кода) со stream (поток данных)


← →
bober   (2006-09-08 13:48) [2]

последующих событий почему то не возникает

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin

ShowMessage(IntToStr(length(Socket.ReceiveText))); -вот сдесь выдает правильную длину передаваемого текста
ShowMessage(Socket.ReceiveText); - сдесь уже пусто  - почему???? даже 4К в таком варианте не появляются.


← →
Сергей М. ©   (2006-09-08 13:59) [3]


> сдесь уже пусто  - почему?


Потому что предыдущим ReceiveText() ты уже получил все что было доступно в буфере приема на тот момент.


> последующих событий почему то не возникает


Сколько было отправлено, столько ты и получил.
Значит, передатчик у тебя реализован неверно.


← →
medved_68 ©   (2006-09-08 17:26) [4]


> Добрый день!
> Как правильно отследить поток на сервере?
> на клиенте делаю
> MySocket: TWinSocketStream;
>
> c:="тест";
> MySocket := TWinSocketStream.Create(Socket,60000);
> MySocket.Write(c,Length(c)+1);
> MySocket.Free;

bober   Попробуй отправлять так:
MySocket.Write(c[1],Length(c));
глядишь и вопросы пропадут :)))


← →
Slym(RO)   (2006-09-11 04:15) [5]

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var s:string;
begin
s:=Socket.ReceiveText;
ShowMessage(IntToStr(length(s))); -вот сдесь выдает правильную длину передаваемого текста
ShowMessage(s); - сдесь уже не пусто



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
15-1169151730
Kostafey
2007-01-18 23:22
2007.02.11
Пустая таблица в Right Join


3-1164198874
Stanislav
2006-11-22 15:34
2007.02.11
Сообщение в FastReport


1-1165501246
i-am-vladko
2006-12-07 17:20
2007.02.11
"сгладить" Resize


15-1169404724
redlord
2007-01-21 21:38
2007.02.11
порт и адрес ICQ сервера


15-1169539069
vitv
2007-01-23 10:57
2007.02.11
Кто-нибудь читал книги Дж. Фостер?




   Наверх