Главная страница
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.025 c
1-81619
DoNotKnow
2003-08-12 23:39
2003.08.25
Активация приложения


8-81849
Alex3000
2003-04-26 12:32
2003.08.25
Анимированный GIF???


6-81858
Volly
2003-06-18 13:57
2003.08.25
Отключение от Internet-а


1-81610
Fktrc
2003-08-13 07:59
2003.08.25
Проблема с Opera, начиная с 6.10 и выше


1-81795
ossa
2003-08-14 08:01
2003.08.25
можно ли в одном модуле ссылаться на переменую в другом и обратно