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

Вниз

Почему никак не разберусь ! :-(   Найти похожие ветки 

 
SemFLY   (2001-11-11 18:56) [0]

Сделал я на Socket’ах клиент и сервер.
Посылаю клиенту команду открыть CD-ROM он открывается, потом посылаю команду на закрытие и ничего не происходит. В чём здесь дело ?

- - - - - - - - -

Вот код сервера.

procedure TForm1.ServerSocket1ClientError(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
ShowMessage ("Соединение не установлено !");
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ServerSocket1.Open;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Socket.Connections[0].SendText(Edit1.Text);
end;

Если в Edit указано "o"- то открыть, если "c" - закрыть.

- - - - - - - -

Код клиента.

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
If Socket.ReceiveText = "o" then
begin
mciSendString("Set cdaudio door open wait", nil, 0, handle); {откpыть}
Memo1.Lines.Add("CD Open !");
exit
end
else
if Socket.ReceiveText = "c" then
begin
mciSendString("Set cdaudio door closed wait", nil, 0, handle); {закpыть}
Memo1.Lines.Add("CD Close !");
end;
end;


Спасибо ! :-)


 
Digitman   (2001-11-12 10:16) [1]

1. Событие TForm1.ClientSocket1Read вообще возникает или нет, когда сервер шлет клиенту "c" ?
2. Если возникает, то что в реальности возвращает метод Socket.ReceiveText - ты проверял ?


 
Donal   (2001-11-12 11:35) [2]

имхо, получается, что ты сообщение два раза читаешь :-)
попробуй так :

Str := Socket.ReceiveText;
If Str = "o" then
ну и далее по тексту с учётом того, что я написал :-))
--
а так у тебя получилось - ты прочитал сообщение, и если оно не равно "о", то ты ещё раз читаешь, а там уже пусто, ессно :-)


 
Digitman   (2001-11-12 11:44) [3]

Точно ! <Donal> прав) ... сразу и не заметил очевидного ляпа)


 
Digitman   (2001-11-12 11:46) [4]

>SemFLY
На будущее (чтобы избегать подобных ошибок) - всегда обращай внимание на то, является конкретный способ обращения к объекту вызовом его метода либо обращением к его св-ву (ReceiveText - метод !)


 
SemFLY   (2001-11-12 17:31) [5]

Да я уж сам заметил ! :-) Вот ведь из-за мелочи и не работало ! :))
Но всё равно Спасибо за ответы! :))))


 
Anatoly Podgoretsky   (2001-11-12 22:31) [6]

Свойство тоже может оказаться замаскированным методом. Лучше разобрать как оно работает.



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

Форум: "Сети";
Текущий архив: 2002.02.04;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
1-8897
dimonf
2002-01-15 14:40
2002.02.04
График.


3-8785
Niky
2002-01-05 09:01
2002.02.04
excel


3-8758
ancor
2002-01-05 14:14
2002.02.04
Можно ли программно создать алиас BD


4-9020
sanyaMM
2001-12-04 16:39
2002.02.04
Как перехватить Ctrl+Alt+Del?


1-8954
Лана Розанова
2002-01-18 12:10
2002.02.04
Программа и память.





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