Студопедия

Главная страница Случайная страница

Разделы сайта

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






Интерфейс Windows Sockets. Основные функции сервера и клиента. Передача и прием данных.






После того как канал создан, можно начинать передачу данных. Для передачи данных при помощи протокола гарантированной доставки TCP вы можете воспользоваться функциями send и recv, которые входят в программный интерфейс Windows Sockets.

Функция передачи данных send имеет три параметра - дескриптор сокета sock, на котором выполняется передача, адрес буфера buf, содержащего передаваемое сообщение, размер этого буфера bufsize и флаги flags:

int send (SOCKET sock, const char FAR* buf, int bufsize, int flags);

В нашем приложении CLIENT мы передаем данные серверу следующим образом:

char szBuf[80];

lstrcpy(szBuf, " Test string");

send (srv_socket, szBuf, lstrlen(szBuf), 0);

Параметры функции recv, предназначенной для приема данных, аналогичны параметрам функции send:

int recv (SOCKET sock, char FAR * buf, int bufsize, int flags);

Заметим, что функции recv и send возвращают количество, соответственно, принятых и переданных байт данных. Приложение, которое принимает данные, должно вызывать функцию recv в цикле до тех пор, пока не будут приняты все переданные данные. При этом на один вызов функции send может приходиться несколько вызовов функции recv.

В случае ошибки обе эти функции возвращают значение SOCKET_ERROR. Для анализа причин возникновения ошибки следует воспользоваться функцией WSAGetLastError.

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

Наше приложение SERVER демонстрирует асинхронный прием данных.

После установки канала связи оно вызывает функцию WSAAsyncSelect, указывая ей в качестве последнего параметра комбинацию констант FD_READ и FD_CLOSE. При этом функция главного окна приложения будет получать сообщение WSA_NETEVENT в тот момент времени, когда чтение данных не вызовет блокировки приложения:

#define WSA_NETEVENT (WM_USER + 2)

rc = WSAAsyncSelect (srv_socket, hWnd, WSA_NETEVENT,

FD_READ | FD_CLOSE);

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

Если функция WSAAsyncSelect выполнилась успешно, она возвращает нулевое значение, при ошибке - значение SOCKET_ERROR.

25. Прикладной уровень модели OSI. Стандартные протоколы и службы Internet: e-mail, ftp, tftp, smtp, http.

Прикладной уровень (Application layer) — это в действительности просто набор разнообразных протоколов, с помощью которых пользователи сети получают до­ступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые Web-страницы, а также организуют свою совместную работу, например, с помо­щью протокола электронной почты. Единица данных, которой оперирует приклад­ной уровень, обычно называется сообщением (message).

Существует очень большое разнообразие служб прикладного уровня. Приведем в качестве примера хотя бы несколько наиболее распространенных реализации файловых служб: NCP в операционной системе Novell NetWare, SMB в Microsoft Windows NT, NFS, FTP и TFTP, входящие в стек TCP/IP.

E-MAIL. Одним из основных средств взаимодействия пользопателей в сетях является электронная почта. С электронной почты начиналось создание Internet, и она остается самым популярным видом деятельности в ней.

1 – дёшево. Второе важное достоинство электронной почты - это скорость доставки.

Используя средства электронной почты, можно не только обмениваться текстовыми посланиями, но и передавать прикрепленные к письмам двоичные файлы.

В общем случае электронная почта - это многозначный термин, используемый для определения процесса передачи сообщений между компьютерами. Различают электронную почту, применяемую в локальных и глобальных сетях.

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

X.400 – международный стандарт создан Международным консультативным комитетом по телеграфии и телефонии, Международным телекоммуникационным союзом. Последняя версия Х.400 поддерживает звук, графику, мультимедиа.

MHS. Служба обработки сообщений используется фирмой Novell в сетевой операционной системе NetWare.

UUPC, SMTP, POP3 Являются основными протоколами передачи электронной почты в сети Internet.

 

FTP. На Internet'овском языке FTP означает интерфейс пользователя, реализующий стандартный протокол передачи файлов. Эта программа позволяет пользователю передавать файлы между двумя компьютерами, связанными между собой локальной (LAN) или глобальной (WAN) сетью. При этом компьютерные платформы могут быть различных типов. В этом и заключается главная особенность FTP в сети.

Если ваша система имеет FTP и подсоединена к Internet, то вы получите доступ к огромному числу архивов, хранящихся на других системах.

 


 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.