Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.09.2008, 14:30   #1
yura-cat
Пользователь
 
Регистрация: 20.09.2008
Сообщений: 20
Радость Управление через лан

Я изучаю дельфи основываясь на несложных примерах
У меня 2 компьютера. В общем как сделать : Один компьютер посылает пакет второму через UDP порт, заставляя того открыть Cd-rom ?
yura-cat вне форума Ответить с цитированием
Старый 21.09.2008, 18:47   #2
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от yura-cat Посмотреть сообщение
Я изучаю дельфи основываясь на несложных примерах
У меня 2 компьютера. В общем как сделать : Один компьютер посылает пакет второму через UDP порт, заставляя того открыть Cd-rom ?
Вы можете сделать так:

Код:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
IdUDPClient1.Send('A');
End;
-------------------------
Uses
 IdSocketHandle, MMSystem,...
...
Procedure TForm1.FormCreate(Sender: TObject);
Begin
IdUDPServer1.Active:=True;
End;
Procedure TForm1.IdUDPServer1UDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
Begin
MciSendString('Set CDAudio Door Open',Nil,0,Handle);
End;
Сидером будет открываться, когда в порт придут любые данные. Но этот вариант не очень хороший. Вы можете ещё делать проверку приходящих данных и потом выполнять действия. Лучше всего для этих целей использовать ServerSocket и ClientSocket. С ними удобней и проще работать и они будут надёжнее.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 21.09.2008, 19:04   #3
yura-cat
Пользователь
 
Регистрация: 20.09.2008
Сообщений: 20
По умолчанию

В панели я не смог найти Soket server\client, где эта функция находится?
Приведите пожалуйста небольшой рабочий пример моей задумки на сокетах.

Последний раз редактировалось yura-cat; 21.09.2008 в 19:19.
yura-cat вне форума Ответить с цитированием
Старый 21.09.2008, 22:44   #4
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от yura-cat Посмотреть сообщение
В панели я не смог найти Soket server\client, где эта функция находится?
Приведите пожалуйста небольшой рабочий пример моей задумки на сокетах.
ServerSocket и ClientSocket - это стандартные компоненты в Делфи. Если у вас их нету, то вы должны их установить. Для этого выберите вкладку Component\Install Packages и в появившемся окне нажмите add и выберите папку Bin в директории с делфи и там найдите эти компоненты и установите их. Потом они должны у вас появится на вкладке Internet. А вот пример кода, который будет открывать сидиром по нажатию на кнопку с проверкой приходящих данных.
Код:
Uses
  MMSystem,...
...
Procedure TForm1.FormCreate(Sender: TObject);
Begin
ServerSocket1.Active:=True;
End;
Procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
Var
S: String;
Begin
S:=Socket.ReceiveText;
If S='CD' Then
Begin
MciSendString('Set CDAudio Door Open',Nil,0,Handle);
End;
End;
----------------------
Procedure TForm1.Button1Click(Sender: TObject);
Begin
ClientSocket1.Active:=True;
ClientSocket1.Socket.SendText('CD');
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 22.09.2008, 14:14   #5
yura-cat
Пользователь
 
Регистрация: 20.09.2008
Сообщений: 20
По умолчанию

Получилось установить эти сокеты, создал две проги в первой сервер, во второй клиент. ВСе как вы и показали мне. Но все-равно не работает. Возможно я неправилно настраиваю эти сокеты. Приведите пожалуйста пример настройки Сервера\клента (сокет)

P.S
у меня почемуто процедура клинта (сокет) вот так выглядит "procedure TForm1.ClientSocket1Connect(Sender: TObject"

Последний раз редактировалось yura-cat; 22.09.2008 в 15:34.
yura-cat вне форума Ответить с цитированием
Старый 22.09.2008, 17:18   #6
yura-cat
Пользователь
 
Регистрация: 20.09.2008
Сообщений: 20
По умолчанию

Спасибо, в общем я во всем сам разобрался) нужно было перевести просто сокет в режим прослушивания ! =)
yura-cat вне форума Ответить с цитированием
Старый 22.09.2008, 20:00   #7
yura-cat
Пользователь
 
Регистрация: 20.09.2008
Сообщений: 20
По умолчанию

Расскажите пожалуйста как сделать чтобы :
В программе - клиенте вводишь текст в поле, клиент передает это на сервер! Сервер виде ShowMessage выдает текст который послал ему клиент.
yura-cat вне форума Ответить с цитированием
Старый 23.09.2008, 00:26   #8
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Цитата:
Сообщение от yura-cat Посмотреть сообщение
Расскажите пожалуйста как сделать чтобы :
В программе - клиенте вводишь текст в поле, клиент передает это на сервер! Сервер виде ShowMessage выдает текст который послал ему клиент.
Можете сделать так:

Код:
Procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
Var
S: String;
Begin
S:=Socket.ReceiveText;
ShowMessage(S);
End;
-------------------------
Procedure TForm1.Button1Click(Sender: TObject);
Begin
ClientSocket1.Active:=True;
ClientSocket1.Socket.SendText(Edit1.Text);
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаленное управление через ICQ dolphin705 Общие вопросы Delphi 25 07.10.2008 21:30
Управление чужой программой через WEB. MethSpeed Безопасность, Шифрование 9 20.07.2008 14:45
через какую сетевую карту входить в инет, а через какую в лан шКОЛЯР Свободное общение 2 27.06.2008 17:55
SSL через WinSock или через что? Jolyk Win Api 2 07.06.2008 17:37