Информационно-вычислительная сеть на основе архитектуры "клиент-сервер", предметная область: "Магазин бытовой техники"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

.TCP,-UDP.,,./:,..">Следует различать клиентские , которому браузер посылает запросы) - как клиентские, так и серверные сокеты. Сокеты позволяют независимо от протокола передачи данных организовать сетевой интерфейс между двумя компьютерами в сети. В частности, сокеты могут работать как с протоколом TCP, так и с протоколом UDP. Обращаться к сокету можно по IP-адресу хост-машины и номеру порта. Сокеты нашли широкое применение во многих сетевых приложениях. Большинство современных операционных систем (такие как Windows, Unix, Linux) поддерживает сокеты на уровне встроенных в ядро библиотек. Различают сокеты с установлением соединения (т. Е. адреса гнезд отправителя и получателя выясняются заранее, до передачи сообщений между ними - устанавливается так называемый виртуальный канал между двумя хостами в сети) и без установления соединения (адреса сокетов отправителя и получателя передаются с каждым пересылаемым сообщением). Для каждого сокета назначается тип, посредством которого определяется способ передачи данных между двумя сокетами. Тип сокета с установлением соединения - это виртуальный канал, а тип сокета без установления соединения - дейтаграмма. В первом случае для передачи данных используется протокол TCP, во втором - UDP. Следовательно, надежность передачи данных в случае дейтаграммных сокетов ниже, зато они работают быстрее виртуальных каналов. Сокеты с установлением соединения взаимодействуют по схеме клиент/сервер: серверному сокету назначается общеизвестный адрес, и оно непрерывно ожидает прибытия клиентских сообщений. Клиентский процесс посылает сообщения на сервер по объявленному адресу серверного сокета.

Все функции работы с сокетами описаны в заголовочном файле winsock2.h. Для успешной сборки программы в опциях компоновщика необходимо указать подключаемую библиотеку ws2_32.lib. Для начала работы с сетью необходимо проинициализировать библиотеку ws2_32. Для этого используется следующая функция: int WSAStartup (unsigned int wVersionRequested, struct WSAData *lpWSAData). Эта функция должна вызываться в самом начале программы, работающей с сокетами. Аргумент wVersionRequested должен содержать значение максимального номера версии библиотеки гнезд, требуемой для корректной работы программы. Функция анализирует переданное ей значение и, если оно меньше либо равно версии библиотеки Ws2_32.dll, то возвращает 0, что соответствует успешной инициализации. В противном случае функция возвращает ненулевое значение, означающее, что данная версия не поддерживается в текущей реализации библиотеки сокетов. Аргумент wVersionRequested формируется из двух байт при помощи макроса MAKEWORD (x,y). Для успешного выполнения функции WSAStartup необходимо в этом аргументе передать указатель на существующую структуру типа WSAData.

Сокет является точкой доступа к сетевым коммуникациям. Приложение просто пишет данные в сокет. Их дальнейшая буферизация, отправка и транспортировка осуществляется используемым стеком протокола и сетевым оборудованием. При приеме приложение читает данные из сокета.

При завершении работы с сокетами необходимо вызвать функцию int WSACleanup(), которая завершает работу программы с библиотекой гнезд Ws2_32. При успешном выполнении функция возвращает 0. Если произошла ошибка, возвращается ненулевое значение.

 

1.2 Программа клиент

 

Для того, чтобы клиент смог подключится к серверу, ему нео