Теория и методика профессионального образования - Педагогические науки - Сортировка материалов по секциям - Конференции - Академия наук
Приветствую Вас, Гость! Регистрация RSS

Академия наук

Воскресенье, 04.12.2016
Главная » Статьи » Сортировка материалов по секциям » Педагогические науки

Теория и методика профессионального образования
Практические аспекты сетевого программирования с помощью Windows Sockets в процессе выполнения практических работ по дисциплине «Системное программирование»
 
Авторы:
 
Зелинский Сергей Сергеевич, аспирант, Луганский национальный университет имени Тараса Шевченко, преподаватель, Краснодонский промышленно-экономический колледж
 
Ракитин Андрей Сергеевич, студент, Краснодонский промышленно-экономический колледж
 
Эффективная подготовка специалистов в современных условиях возможна только при условии внедрения принципиально новых подходов к изучения профессиональных дисциплин. Одним из таких подходов является использование модульного программирования при изучении языка С++ в рамках дисциплины «Системное программирование». Данный принцип позволяет системно изучать язык программирования и способствует командной разработке программных продуктов.
Исследованиями в области теоретического изучения сетевого программирования с помощью Windows Sockets языка программирования С++ занимался Харт Джонсон. Однако, необходимо систематизировать знания в области применения библиотеки Windows Sockets в практической подготовке по дисциплине «Системное программирование».
Цель статьи состоит в исследовании практических аспектов сетевого программирования с помощью Windows Sockets в процессе выполнения практических работ по дисциплине «Системное программирование».
Изучая дисциплину «Системное программирование» студентам приходится создавать различные программы, в том числе и сетевые. Сетевое программирование с помощью Windows Sockets является необходимым требования к компетентностному специалисту.
Windows Sockets API (Winsock) – техническая спецификация, которая определяет, как сетевое программное обеспечение Windows будет получать доступ к сетевым сервисам, например, TCP/IP. Winsock определяет стандартный интерфейс между клиентским приложением и внешним стеком протоколов TCP/IP [3].
Сокеты (англ. socket – углубление, гнездо, разъём) – название программного интерфейса для обеспечения обмена данными между процессами. Сокет – абстрактный объект, представляющий конечную точку соединения [4]. Сокеты являются основными объектами при программировании Sockets API. Наряду с понятием «сокет» встречается понятие «именованный канал», которое является также одним из методов межпроцессного взаимодействия.
Проанализировав работу Харта Джонсона, можно сделать вывод, что Winsock поддерживается семейством операционных систем Windows. Преимуществами Windows Sockets от Berkeley Sockets являются:
– простой перенос кода написанного для Berkeley Sockets;
– лёгкая интеграция системы Windows в сети TCP/IP;
– сокеты могут применяться совместно с асинхронным вводом-выводом Win32;
– сокеты можно рассматривать как дескрипторы файлов и работать с ними;
– возможность переноса приложений на другую платформу [1].
В другой работе Харта Джонсона, делается акцент на различные методы в программировании Winsock, которые заключаются в использовании именованных каналов и сокетов и состоят в следующем:
– именованные каналы могут быть ориентированными на работу с сообщениями, что значительно упрощает программы;
– именованные каналы требуют использование функций ReadFile и WriteFile, в то время как сокеты могут обращаться также к функциям send и recv;
– в отличии от именованных каналов сокеты настолько гибки, что предоставляют пользователям возможность выбирать протокол для использования с сокета, например TCP или UDP;
– сокеты основаны на промышленном стандарте, что обеспечивает их совместимость с системами, отличными от Windows [2].
Проанализировав работы Харта Джонсона, перейдем к практическому применению Winsock.
Для начала работы необходимо подключить библиотеку winsock.h:
#include <winsock.h>
Инициализируем библиотеку с использованием функции WSAStartup():
WSAStartup(MAKEWORD(1,1), &wan)
Далее создаем сокет с помощью функции socket():
SOCKET socket(int pf, in type, int proksi);
Для создания сервера используем функцию bind() связывающую дескриптор сокета с именем:
int bind(SOCKET sok, const struct sockaddr FAR* name, int nameout)
Прослушивание сокета на предмет подключения клиента происходит с помощью функции listen() и подтверждение подключения клиента функция accept():
int listen (SOCKET sok, int logens)
SOCKET accept(SOCKET sok, struct sockaddr FAR* addr, int FAR* address)
Создавая клиентскую часть программы используется функция для соединения с сервером connect():
int connect(SOCKET sok, const struct sockaddr FAR* name, int names)
Прием и передача данных происходит с помощью функций send() и recv():
int send (SOCKET sok, const char FAR * buf, int lent, int flagout).
Таким образом, мы рассмотрели основные функции, с помощью которых можно реализовать клиент-серверное приложение. Использование библиотеки Winsock позволяет приобрести необходимые для современного специалиста знания и умения в области создания сетевых приложений взаимодействующих со стеком протоколов TCP/IP. Дисциплина «Системное программирование» дает базовые знания в области программирования на языке С++ и является первой ступенькой в освоении различных дополнительных библиотек в том числе и библиотеки Winsock.
 
Литература:
1.Харт, Джонсон, М. Системное программирование в среде Win 32, 2-е изд.: Пре. С англ.: - М.: Издательский дом «Вильямс», 2001.- 464 с. : - Парал. тит. англ.
2.Харт, Джонсон, М. Системное программирование в среде Windows, 3–е издание.: Пер. с англ. – М.: Издательский дом «Вильямс», 2005. 592 с.: - Парал. тит. англ.
3.Материалы сайта: http://ru.wikipedia.org/wiki/Winsock, открытый доступ, 12.11.2012 г.
4.Материалы сайта: http://ru.wikipedia.org/wiki/Сокет_(программный_ интерфейс) , открытый доступ, 13.11.2012 г.
Категория: Педагогические науки | Добавил: Administrator (04.12.2012)
Просмотров: 426 | Рейтинг: 5.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]