Главная страница
    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.45 MB
Время: 0.051 c
15-1169548799
i-am-vladko
2007-01-23 13:39
2007.02.11
Model Maker


2-1169532094
M1sT
2007-01-23 09:01
2007.02.11
Сервер InterBase...


1-1166097257
webpauk
2006-12-14 14:54
2007.02.11
добавление BitMap в ImageList


8-1150563709
Denister
2006-06-17 21:01
2007.02.11
конвертировать RTF в простой текст (без VCL)


2-1169640296
Vlad Oshin
2007-01-24 15:04
2007.02.11
Функция типа REPLACE в строках, нет ли такой?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский