Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.08.25;
Скачать: [xml.tar.bz2];

Вниз

Сокеты 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.009 c
1-81636
Patrick
2003-08-12 13:10
2003.08.25
D5 to D7


1-81762
KPP
2003-08-14 15:13
2003.08.25
Меню попап, битмапы и хоткеи пунктов, сдвиг


1-81629
Spawn
2003-08-14 09:38
2003.08.25
Word


6-81867
-= Demon =-
2003-06-18 17:29
2003.08.25
Как узнать тип соединения с Интернетом: сеть или модем


14-81893
3APA3A
2003-08-08 01:03
2003.08.25
Касательно статьи...





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