Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.11;
Скачать: 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 вся ветка

Текущий архив: 2007.02.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.05 c
2-1169814625
novill
2007-01-26 15:30
2007.02.11
Есть способ удаления файлов с аттрибутом readonly?


2-1169714035
Wahnsinng
2007-01-25 11:33
2007.02.11
Получить тег


1-1166456445
georgius
2006-12-18 18:40
2007.02.11
Unicode -> cp1251


15-1169041480
не очень
2007-01-17 16:44
2007.02.11
проводил собеседование


2-1169385146
DimaL
2007-01-21 16:12
2007.02.11
Пароли