![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сокеты Windows
BJValentine © (2003-06-17 16:28:00)
С клиента послал серверу запрос, он прислал ответ. Это всё хорошо, но срабатывает только один раз. Может я делаю какую-то типичную ошибку? Я только сегодня начал работать с сокетами, в книге весьма поверхностно описаны сокеты, помогите, пожалуйста, кто знает.
Digitman (2003-06-18 16:29:00) [1]
> BJValentine
разумеется !!)
ты должен в событии OnRead() вычерпать хоть сколько-нибудь из буфера приема !
иначе событие OnRead вновь не возникнет)
BJValentine (2003-06-18 16:12:00) [2]
Спасибо, что заставил подумать. Всё получилось. Я просто не знал, что обзательно надо прочитать (ReceiveText), прежде чем отправить.
Digitman (2003-06-18 15:07:00) [3]
> BJValentine
> Серверу в данном случае
Причем здесь сервер ????? или клиент ????
Это "побоку", как ты говоришь)... речь идет о ПЕРЕДАТЧИКЕ сообщения !! Неверная работа с транспортной логикой передатчика и вызывает проблемы)
После установления соединения для него (установленного соединения) нет понятий "сервер" и "клиент", а есть в каждый момент времени "сторона, передающая сообщение" и "сторона, принимающая сообщение".
Я, извини, уже мозоль заработал, растолковывая по десять раз на дню, что здесь как да почему))
Ну вот же, практически рядом с твоей идет ветка с такой же проблемой. Неужели трудно почитать-вникнуть ?
http://www.delphimaster.ru/cgi-bin/forum.pl?look=1&id=1054813102&n=4
BJValentine (2003-06-18 14:49:00) [4]
Серверу в данном случае побоку, что к нему прийдёт, главное-заставить его послать текст. Какая разница: есть анализ или нет?
Digitman (2003-06-18 14:44:00) [5]
> BJValentine
> сервак никак не реагирует
а где аназиз результата вызова ФУНКЦИИ (!!!!!!!!!!!!!!!) SendText() ?
BJValentine (2003-06-18 13:46:00) [6]
To Manfred:
Вот должно выдавать месаги по нажатию кнопки, но выдаёт только когда нажимаю первый раз, остальные разы - ничего не происходит, точнее
procedure TForm1.Button1Click(Sender: TObject);
begin
CS1.Socket.SendText("ddd");
end;
выполняется, а сервак никак не реагирует!
Digitman (2003-06-18 08:33:00) [7]
> BJValentine
какой операции ?
Manfred (2003-06-17 22:42:00) [8]
Ты правильно поставил вопрос? Судя по приведённому коду, сколько раз жмакнешь пимпу - столько и получишь мессаджей.
BJValentine (2003-06-17 18:18:00) [9]
Ожидал многократное выполнение этой операции
Digitman (2003-06-17 17:42:00) [10]
ну так а что ты ожидал ?
BJValentine (2003-06-17 17:31:00) [11]На клиенте нажимаю кнопку:
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 16:54:00) [12]
> срабатывает только один раз
что "срабатывает один раз" ? конкретно ?
BJValentine (2003-06-17 16:38:00) [13]Клиент:
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;
Spawn (2003-06-17 16:36:00) [14]
А где код?