- •Работа с сетью
- •Протоколы
- ••HTTP (Hyper Text Transfer Protocol) — это протокол передачи гипертекста. Протокол HTTP используется
- •Сокеты
- ••Определение св-в Host и Port - чтобы успешно установить соединение, нужно присвоить свойствам
- ••Авторизация - этот пункт можно пропустить, если сервер не требует ввода каких-либо логинов
- •Описание свойств и методов
- •Описание свойств и методов
- •Пример
- ••В форму нужно поместить две кнопки TButton и три TEdit. При нажатии на
- ••procedure Button1Click(Sender: TObject);
- ••procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
- •procedure ClientSocket1Connect(Sender: TObject; Socket: TCustomWinSocket); var c: Char;
- •Сервер сокет
- ••Определение св-в Port и ServerType - чтобы к серверу могли нормально подключаться клиенты,
- •Свойства
- •ThreadCacheSize -
- •Port - номер порта для установления соединений с клиентами. Порт у сервера и
- •TServerSocket.Socket
- •посылаемые через сокет данные могут не только объединяться в один блок, но и
- ••И именно поэтому, если Вы отправите через сокет файл, скажем, в 100 Кб,
- •{Прием файла через сокет}
- •Посылка файлов через сокет.
- •procedure TForm1.Button1Click(Sender: TObject); begin
- •procedure TForm1.ServerSocket1Accept(Sender: TObject; Socket: TCustomWinSocket);
- •procedure TForm1.ServerSocket1ClientError(Sender: TObject; Socket: TCustomWinSocket; ErrorEvent: TErrorEvent; var ErrorCode: Integer);
- •procedure TForm1.ServerSocket1GetSocket(Sender: TObject; Socket: Integer; var ClientSocket: TServerClientWinSocket); begin
Работа с сетью
Протоколы
•Каждая сеть должна следовать определенным правилам - протоколам при передачи данных от одного компьютера к другому
•В сети сам поток информации представляется пакетами определенного размера. В частности каждый такой пакет содержит информацию: о своем размере, о том, где начало информации и какое место направления (т.е. кому в сети этот пакет предназначен). Устройства сети, которые получают такой пакет, смотрят по этим данным, куда его направить.
•В зависимости от своего типа, одни устройства просто рассылают все пакеты по сети, это называется широковещательная рассылка, а некоторые очень детально изучают пакет и определяют точное его место направления, т. е. определяют маршрут следования пакета, или как еще говорят, маршрутизацию .
TCP/IP
•Стек протоколов TCP/IP — это два протокола нижнего уровня, являющиеся основой связи в сети Интернет. Протокол TCP (Transmission Control Protocol) разбивает передаваемую информацию на порции и нумерует все порции. С помощью протокола IP (Internet Protocol) все части передаются получателю. Далее с помощью протокола TCP проверяется, все ли части получены. При получении всех порций TCP располагает их в нужном порядке и собирает в единое целое.
TCP/IP
•IP-adress - это уникальный сетевой адрес, идентифицирующий конкретный компьютер в сети, в которой установлен протокол TCP/IP . IP-adress состоит из четырех чисел, разделенных точками. Диапазон каждого из этих чисел, в общем случае лежит в пределах от 0 до 256 .
•например, 125.115.125.48
•Первые три числа определяют сеть, в которой находится компьютер, а последнее - компьютер в этой сети.
TCP/IP
•Первые три числа (по-умному говорят - тетрады) определяют класс IP-адреса . Таких классов три. Все эти сложности связанны именно с тем, что протокол TCP/IP обеспечивает работу в глобальных сетях. Вы только представьте, сколько компьютеров входит в сеть Интернет!!! Ведь каждый из них пренадлежит какой-то своей локальной сети, которая входит в состав другой сети и так далее... И каждому нужно выделить уникальный адрес!!!
•Итак, классы IP-adress
•* Класс А - для больших организаций. Первое число от 0 - 126.
•* Класс В - для средних организаций. Первое число от 128 - 191.
•* Класс С - для небольших организаций. Первое число от 192 - 223.
•HTTP (Hyper Text Transfer Protocol) — это протокол передачи гипертекста. Протокол HTTP используется при пересылке Web-страниц с одного компьютера на другой.
•FTP (File Transfer Protocol) — это протокол передачи файлов со специального файлового сервера на компьютер пользователя. FTP дает возможность абоненту обмениваться двоичными и текстовыми файлами с любым компьютером сети. Установив связь с удаленным компьютером, пользователь может скопировать файл с удаленного компьютера на свой или скопировать файл со своего компьютера на удаленный.
•POP (Post Office Protocol) — это стандартный протокол почтового соединения. Серверы POP обрабатывают входящую почту, а протокол POP предназначен для обработки запросов на получение почты от клиентских почтовых программ.
•SMTP (Simple Mail Transfer Protocol) — протокол, который задает набор правил для передачи почты. Сервер SMTP возвращает либо подтверждение о приеме, либо сообщение об ошибке, либо запрашивает дополнительную информацию.
•uucp (Unix to Unix Copy Protocol) — это ныне устаревший, но все еще применяемый протокол передачи данных, в том числе для электронной почты. Этот протокол предполагает использование пакетного способа передачи
информации, при котором сначала устанавливается соединение клиент-сервер и передается пакет данных, а затем автономно происходит его обработка, просмотр или подготовка писем.
•telnet — это протокол удаленного доступа. TELNET дает возможность абоненту работать на любой ЭВМ сети Интернет, как на своей собственной, то есть запускать программы, менять режим работы и так далее. На практике возможности лимитируются тем уровнем доступа, который задан администратором удаленной машины.
•DTN — протокол, предназначенный для обеспечения сверхдальней космической связи.
Сокеты
•FTP, POP, SMTP, HTTP
•сокеты - это база для этих протоколов. Таким образом, пользуясь сокетами, можно самому создать (симитировать) и FTP, и POP, и любой другой протокол, причем не обязательно уже созданный, а даже свой собственный
•Определение св-в Host и Port - чтобы успешно установить соединение, нужно присвоить свойствам Host и Port требуемые значения. Host - это хост-имя (например: nitro.borland.com) либо IP-адрес (например: 192.168.0.88) компьютера, с которым надо соединиться. Port - номер порта (от 1 до 65535) для установления соединения. Обычно номера портов берутся, начиная с 1001 - т.к. номера меньше 1000 могут быть заняты системными службами (например, POP - 110).
•Открытие сокета - после того, как Вы назначили свойствам Host и Port соответствующие значения, можно приступить непосредственно к открытию сокета (сокет здесь рассматривается как очередь, в которой содержатся символы, передающиеся от одного компьютера к другому).
•Авторизация - этот пункт можно пропустить, если сервер не требует ввода каких-либо логинов и/или паролей. На этом этапе Вы посылаете серверу свой логин (имя пользователя) и пароль. Но механизм авторизации зависит уже от конкретного сервера;
•Посылка/прием данных - это, собственно и есть то, для чего открывалось сокетное соединение. Протокол обмена данными также зависит от сервера;
•Закрытие сокета - после всех выполненных
операций необходимо закрыть сокет с помощью метода Close компонента TClientSocket (либо присвоить свойству Active значение False).
Описание свойств и методов
компонента TClientSocket
Свойства |
Методы |
События |
Active - показывает, открыт |
Open - открытие сокета |
OnConnect - как следует из |
сокет или нет. Тип: Boolean. |
(аналогично присвоению |
названия, это событие |
Соответственно, True - |
значения True свойству |
возникает при установлении |
открыт, а False - закрыт. Это |
Active); |
соединения. Т.е. в |
свойство доступно для |
Close - закрытие сокета |
обработчике этого события |
записи; |
(аналогично присвоению |
уже можно начинать |
Host - строка (Тип: string), |
значения False свойству |
авторизацию или |
указывающая на хост-имя |
Active); |
прием/передачу данных; |
компьютера, к которому |
На этом все методы |
OnConnecting - возникает |
следует подключиться; |
при установлении |
|
Address - строка (Тип: |
компонента TClientSocket |
соединения. Отличие от |
string), указывающая на IP- |
исчерпываются. А Вы |
OnConnect в том, что |
адрес компьютера, к |
спросите: "А как же |
соединение еще не |
которому следует |
работать с сокетом? Как |
установлено. Обычно такие |
подключиться. В отличие от |
тогда пересылать |
промежуточные события |
Host, здесь может |
данные?". Об этом Вы |
используются для |
содержаться лишь IP. |
узнаете чуть дальше. |
обновления статуса; |
Отличие в том, что если Вы |
|
OnDisconnect - возникает |
укажете в Host символьное |
|
при закрытии сокета. |
имя компьютера, то IP адрес, |
|
Причем, закрытия как из |
соответствующий этому |
|
Вашей программы, так и со |
имени будет запрошен у |
|
строноны удаленного |
DNS; |
|
компьютера (либо из-за |
|
|
сбоя); |