Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.25;
Скачать: CL | DM;

Вниз

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

 
BJValentine ©   (2003-06-17 16:28) [0]

С клиента послал серверу запрос, он прислал ответ. Это всё хорошо, но срабатывает только один раз. Может я делаю какую-то типичную ошибку? Я только сегодня начал работать с сокетами, в книге весьма поверхностно описаны сокеты, помогите, пожалуйста, кто знает.


 
Spawn ©   (2003-06-17 16:36) [1]

А где код?


 
BJValentine ©   (2003-06-17 16:38) [2]

Клиент:

procedure TForm1.CS1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
ShowMessage(Socket.ReceiveText);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
CS1.Socket.SendText("ddd");
end;

Сервер:

procedure TForm1.SS1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
( Edit1.Text) Клиент:

procedure TForm1.CS1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
ShowMessage(Socket.ReceiveText);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
CS1.Socket.SendText("ddd");
end;

Сервер:

procedure TForm1.SS1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
Socket.SendText(Edit1.Text);
end;


 
Digitman ©   (2003-06-17 16:54) [3]


> срабатывает только один раз


что "срабатывает один раз" ? конкретно ?



 
BJValentine ©   (2003-06-17 17:31) [4]

На клиенте нажимаю кнопку:

procedure TForm1.Button1Click(Sender: TObject);
begin
CS1.Socket.SendText("ddd");
end;

На сервере выполняется:

procedure TForm1.SS1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
( Edit1.Text) На клиенте нажимаю кнопку:

procedure TForm1.Button1Click(Sender: TObject);
begin
CS1.Socket.SendText("ddd");
end;

На сервере выполняется:

procedure TForm1.SS1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
begin
Socket.SendText(Edit1.Text);
end;

После чего на клиенте выполняется:

procedure TForm1.CS1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
ShowMessage(Socket.ReceiveText);
end;


 
Digitman ©   (2003-06-17 17:42) [5]

ну так а что ты ожидал ?


 
BJValentine ©   (2003-06-17 18:18) [6]

Ожидал многократное выполнение этой операции


 
Manfred ©   (2003-06-17 22:42) [7]

Ты правильно поставил вопрос? Судя по приведённому коду, сколько раз жмакнешь пимпу - столько и получишь мессаджей.


 
Digitman ©   (2003-06-18 08:33) [8]


> BJValentine


какой операции ?


 
BJValentine ©   (2003-06-18 13:46) [9]

To Manfred:

Вот должно выдавать месаги по нажатию кнопки, но выдаёт только когда нажимаю первый раз, остальные разы - ничего не происходит, точнее

procedure TForm1.Button1Click(Sender: TObject);
begin
CS1.Socket.SendText("ddd");
end;

выполняется, а сервак никак не реагирует!


 
Digitman ©   (2003-06-18 14:44) [10]


> BJValentine



> сервак никак не реагирует


а где аназиз результата вызова ФУНКЦИИ (!!!!!!!!!!!!!!!) SendText() ?


 
BJValentine ©   (2003-06-18 14:49) [11]

Серверу в данном случае побоку, что к нему прийдёт, главное-заставить его послать текст. Какая разница: есть анализ или нет?


 
Digitman ©   (2003-06-18 15:07) [12]


> BJValentine



> Серверу в данном случае


Причем здесь сервер ????? или клиент ????
Это "побоку", как ты говоришь)... речь идет о ПЕРЕДАТЧИКЕ сообщения !! Неверная работа с транспортной логикой передатчика и вызывает проблемы)
После установления соединения для него (установленного соединения) нет понятий "сервер" и "клиент", а есть в каждый момент времени "сторона, передающая сообщение" и "сторона, принимающая сообщение".

Я, извини, уже мозоль заработал, растолковывая по десять раз на дню, что здесь как да почему))

Ну вот же, практически рядом с твоей идет ветка с такой же проблемой. Неужели трудно почитать-вникнуть ?

http://delphimaster.net/view/6-1054813102/


 
BJValentine ©   (2003-06-18 16:12) [13]

Спасибо, что заставил подумать. Всё получилось. Я просто не знал, что обзательно надо прочитать (ReceiveText), прежде чем отправить.


 
Digitman ©   (2003-06-18 16:29) [14]


> BJValentine


разумеется !!)

ты должен в событии OnRead() вычерпать хоть сколько-нибудь из буфера приема !

иначе событие OnRead вновь не возникнет)



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

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

Наверх




Память: 0.5 MB
Время: 0.024 c
14-81907
Rel_
2003-08-06 10:18
2003.08.25
Связка Delphi - Builder


1-81697
tytus
2003-08-11 11:50
2003.08.25
Цветные строки в ListView


3-81574
labanga
2003-07-30 14:40
2003.08.25
вычисляемое поле


1-81690
Winni
2003-08-11 14:15
2003.08.25
Проблемы с кириллицей при компиляции .RTF --> .HLP (HCW.exe)


14-81949
VEG
2003-08-05 19:05
2003.08.25
Нужен ли человечеству ИИ???