Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Разработка сервера




Сетевое программирование с использованием сокетов

Цель работы

Получить навыки создания сетевых приложений на основе технологии Socket

Краткие теоретические сведения

Сокетом (от англ. Socket – гнездо, розетка) называется специальный объект, создаваемый для отправки и получения данных через сеть. Чтобы 2 программы могли общаться друг с другом через сеть, каждая из них должна создать сокет. Каждый сокет обладает двумя основными характеристиками: протоколом и адресом, к которым он привязан. Протокол задается при создании сокета и не может быть изменен впоследствии. Адрес сокета задается позже, но обязательно до того, как через сокет пойдут данные.

В среде Delphi функции механизма обмена данными на основе сокетов воплощены в невизуальных компонентах TclientSocket и TserverSocket, расположенных на панели Internet. Начиная с версии Delphi7 и выше, компоненты TClientSocket и TServerSocket изначально отсутствуют на вкладке Internet, подключить библиотеку сокетов можно следующим образом:

Component -> Install Packages -> Add и выбираем файл dclsockets70.bpl

 

Пример

На основании компонентов TclientSocket и TserverSocket создадим многопользовательское приложение для обмена сообщениями, состоящее из программы сервера и программы клиента. Клиентские программы могут быть запущены на любом компьютере, в том числе и на самом сервере. Для компьютера, играющего роль сервера должен быть известен IP адрес.

Разработка сервера

Поместим программу в папку Server.

Создадим форму, приведенную на рисунке.

Для компонента ServerSocket укажем следующие свойства:

Port=1025 (любой свободный, обычно больше 1024)

Active=False.

Для события OnClientRead напишем следующий код:

Var S:String;I:Integer;

Begin

S:=IntToStr(Socket.SocketHandle)+' > '+Socket.ReceiveText;

ListBox1.Items.Add(S);

For I:=0 To ServerSocket1.Socket.ActiveConnections-1 Do Begin

If ServerSocket1.Socket.Connections[i].SocketHandle<> Socket.SocketHandle Then

ServerSocket1.Socket.Connections[i].SendText(S);

End;

End;

Для процедуры создания формы:

Begin

ServerSocket1.Active:=True;

end;

Для кнопки «Выход»

Begin

ServerSocket1.Active:=False;Close;

end;

Для кнопки «Очистить»

Begin

ListBox1.Clear;

end;

Скомпилируем программу и перейдем к разработке клиента.





Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 257 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Большинство людей упускают появившуюся возможность, потому что она бывает одета в комбинезон и с виду напоминает работу © Томас Эдисон
==> читать все изречения...

2486 - | 2161 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.