Главная страница
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.035 c
1-81692
Yuliya
2003-08-11 09:55
2003.08.25
типизированный файл


14-81875
kaif
2003-08-07 19:20
2003.08.25
Ссылочная целостность...


14-81942
MsGuns
2003-08-06 21:22
2003.08.25
Спасибо клонам и клопам


3-81535
kserg
2003-07-25 18:51
2003.08.25
вопрос по MS SQL-серверу


1-81718
The X
2003-08-14 17:23
2003.08.25
Сделать выч. кол-ва дней, недель, месяцев и годов между датами