Возможно, вас впечатлили мощные функции и передовые технологии интернет-приложений, таких как браузер IE от Microsoft. Возможно, вы еще не способны разработать такую сложную крупномасштабную систему, но не волнуйтесь, здесь у вас есть шанс. Чтобы попрактиковаться, нужно научиться использовать Winsocket Delphi для написания приложений на основе TCP/ip. Предполагается, что вы уже знакомы со средствами разработки Delphi.
Мы можем себе представить, что если вы с самого начала пишете программу для связи с удаленным компьютером, вы должны хорошо знать и владеть соответствующими сетевыми протоколами, базовыми знаниями о системе, а также о сетевом программном и аппаратном обеспечении. Однако это так. достичь этого можно только за короткий период времени. Для большинства людей это непростая задача.
К счастью, библиотека сетевых компонентов Delphi предоставляет нам компоненты для реализации сетевого взаимодействия, которые инкапсулируют сложные детали реализации. Компоненты ClientSocket и ServerSocket позволяют нам легко писать собственные программы сетевого взаимодействия и совместного использования ресурсов.
Шаги по написанию программ Winsocket в Delphi 4.0 следующие:
1) Настройки свойств компонента Winsocket;
2) Установите соединение с удаленным компьютером;
3) Передача данных между компьютерами;
Эти три шага подробно описаны ниже.
один. Настройка свойств Winsocket
В Delphi 4.0 Winsocket разделен на два компонента: ClientSocket и ServerSocket. Они служат компонентами на стороне клиента и сервера соответственно. То есть компонент ClientSocket используется в клиентской программе, а компонент ServerSocket — на стороне сервера. Посредством связи между этими двумя компонентами в сочетании с кодом вспомогательного приложения можно реализовать простую программу связи. Конечно, если в клиентскую программу ввести ServerSocket, клиентская программа может выступать в роли сервера и отвечать на запросы других клиентских программ.
Если вы пишете серверную программу, вам необходимо установить свойство Port компонента ServerSocket. Причина установки этого параметра заключается в том, что на одном компьютере может работать несколько серверных программ, и они могут постоянно принимать запросы на подключение от удаленных клиентских программ. Если вы пытаетесь отправить электронное письмо, а система связывает ваш запрос с другой серверной программой, ваше электронное письмо определенно не будет отправлено должным образом. Поэтому для компонента ServerSocket в серверной программе необходимо установить подходящий номер порта. Вы также можете установить атрибут Service, который указывает тип службы, предоставляемой ServerSocket, например: FTP, HTTP и т. д. Затем установите для свойства Active значение True.
Если вы пишете клиентскую программу, у компонента ClientServer есть дополнительные свойства. Атрибут Port должен быть установлен в соответствии со значением атрибута Port на стороне сервера. Кроме того, свойство Host должно быть установлено правильно. Это свойство доступно только для чтения и недоступно во время разработки. Он указывает имя хоста удаленного сервера, к которому клиентская программа хочет подключиться. Вы также можете установить атрибут Адрес, который представляет собой IP-адрес удаленного хоста. Если установлены оба атрибута, система будет использовать атрибут Хост, а IP-адрес, заданный атрибутом Адрес, станет недействительным.
два. Установить соединение с удаленным компьютером
Для передачи данных между удаленными компьютерными системами сначала необходимо установить соединение между двумя взаимодействующими хостами.
Компонент ServerSocket на стороне сервера вызывает метод Open для инициализации соединения Socket. В то же время он устанавливает для атрибута Active значение True, устанавливает компонент ServerSocket в режим прослушивания и определяет, есть ли запрос на соединение в любое время.
Если сервер принимает запрос на соединение от клиентской программы, запускается событие OnAccept. Следующий код — это то, что серверная программа должна сделать после принятия соединения.
PROcedure Myform..ServerSocketAccept(Отправитель: TObject, Socket: TCustomWinSocket);
начинать
IsServer := Истина;
конец;
В клиентской программе компонент ClientSocket устанавливает необходимые свойства, такие как порт и хост, а затем устанавливает для свойства Active значение True, чтобы выполнить запрос на соединение.
три. Передача данных между компьютерами
Как только сервер примет запрос на соединение от клиента, клиент может отправлять данные. В это время между клиентом и сервером существует сокет, и связь осуществляется через этот сокет. Поэтому атрибут Socket очень важен и имеет множество методов. Используя несколько простых методов, вы можете отправлять и получать данные.
Клиентская часть использует следующую форму: ClientSocket1.socket.sendtext('строка, которую вы хотите отправить');
На стороне сервера она имеет следующий вид: ServerSocket1.socket.recievetext(str: string); Эта функция возвращает длину полученной строки и сохраняет ее в переменной str.
Выше приведен простейший пример передачи данных. Вы также можете использовать другие методы, предоставляемые свойством Socket, для реализации сложной передачи данных.
Хотя использовать компонент Winsocket в Delphi 4.0 очень удобно, если вы хотите по-настоящему овладеть его использованием для разработки сетевых приложений, вам необходимо внимательно прочитать файлы справки и примеры программ. Сравните преимущества этого метода в непрерывном обучении, освойте его возможности программирования, а затем овладейте навыками программирования других сетевых компонентов, представленных в Delphi, таких как: NMPOP3, NMUDP, NMFTP и т. д. К тому времени у вас будет возможность участвовать в разработке реальных сетевых приложений, а не просто брать чужое программное обеспечение сетевых приложений, настраивать его и умело им управлять.