рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Текст полностью прокомментированной программы сервера

Текст полностью прокомментированной программы сервера - раздел Информатика, Описание способов тестирования сетей #include <vcl.h> #pragma Hdrstop #pragma Argsused...

#include <vcl.h>

#pragma hdrstop

#pragma argsused

#include <stdio.h>

#include <conio.h>

#include <winsock2.h>

 

#define PORT 666 // порт сервера

#define sHELLO "200 OKnHello, %s [%s] Sailorn"

 

int main(int argc, char* argv[])

{

char buff[1024];

printf("UDP SERVERn");

// Шаг 1 - подключение библиотеки

if (WSAStartup(0x202, (WSADATA *)&buff[0]))

{

printf("WSAStartup error: %dn", WSAGetLastError());

printf ("Press any key for exit...");

getch();

return -1;

}

 

// Шаг 2 - создание сокета

SOCKET my_sock;

my_sock = socket(AF_INET,SOCK_DGRAM,0);

if (my_sock == INVALID_SOCKET)

{

printf("Socket() error: %dn", WSAGetLastError());

WSACleanup();

printf ("Press any key for exit...");

getch();

return -1;

}

 

// Шаг 3 - связывание сокета с локальным адресом

sockaddr_in local_addr;

local_addr.sin_family = AF_INET;

local_addr.sin_addr.s_addr = INADDR_ANY;

local_addr.sin_port = htons(PORT);

 

if (bind(my_sock, (sockaddr *)&local_addr, sizeof(local_addr)))

{

printf("bind error: %dn", WSAGetLastError());

closesocket(my_sock);

WSACleanup();

printf ("Press any key for exit...");

getch();

return -1;

}

 

// Шаг 4 обработка пакетов, присланных клиентами

while (1)

{

sockaddr_in client_addr;

int client_addr_size = sizeof(client_addr);

int bsize = recvfrom(my_sock,&buff[0],sizeof(buff)-1,0,

(sockaddr *)&client_addr, &client_addr_size);

if (bsize == SOCKET_ERROR)

printf("recvfrom() error: %dn", WSAGetLastError());

 

// Определяем IP-адрес клиента и прочие атрибуты

HOSTENT *hst;

hst = gethostbyaddr((char *)&client_addr.sin_addr, 4, AF_INET);

printf("+%s [%s:%d] new DATAGRAM!n",

(hst) ? hst->h_name : "Unknown host",

inet_ntoa(client_addr.sin_addr),

ntohs(client_addr.sin_port));

 

// добавление завершающего нуля

buff[bsize] = 0;

 

// Вывод на экран

printf("C=>S:%sn", &buff[0]);

 

// посылка датаграммы клиенту

sendto(my_sock, &buff[0], bsize, 0,

(sockaddr *)&client_addr, sizeof(client_addr));

}

return 0;

}


– Конец работы –

Эта тема принадлежит разделу:

Описание способов тестирования сетей

Общий алгоритм работы клиент серверной системы тестирования сети... Запуск программы сервера... Запуск программы клиента...

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Текст полностью прокомментированной программы сервера

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Описание способов тестирования сетей
Необходимость передачи данных по сетям связи возникла давно. Как известно, самые первые телекоммуникационные системы были способны передавать только “данные” — в виде азбуки Морзе. Однако построенн

Краткие сведения по сети Ethernet
Ethernet — это асинхронный, основанный на использовании кадров протокол, разработанный для обеспечения связи между более чем двумя устройствами через разделяемую среду передачи. Определенн

Кадры Ethernet
Кадр Ethernet может включать в себя до восьми полей, лишь одно из которых (хотя и самое большое) содержит передаваемую информацию. Первыми двумя полями являются преамбула и разделитель начала кадра

Модель OSI
Семиуровневая сетевая модель OSI описывает функции различных составных частей (уровней) систем передачи данных. Протокол Ethernet охватывает два нижних уровня этой модели: уровень 1 — уров

Тестирование сервисов Ethernet
Чтобы убедиться в том, что упоминавшиеся выше соединения Ethernet правильно работают и обеспечивают требуемое качество передачи данных, их необходимо протестировать. В ходе такого тестирования изме

Эталонное тестирование
Согласно методике тестирования и определенные критерии, позволяющие сервис-провайдеру и клиенту добиться необходимого взаимопонимания, система связи должна тестироваться при всех типовых размерах к

Формат UDP-пакета
Заголовок UDP содержит 4 поля. Поле «порт отправителя» (16 бит) определяет порт на хосте отправителя, пославший пакет. В случае, если процесс-отправитель не ожидает от получателя никаких о

Алгоритм программы клиента с фрагментами программы
1. Запуск программы – клиента 2. Инициализация таймера · QueryPerformanceFrequency(&m_sw_freq) 3. Иницилизация библиотеки Winsock · WSAStartup(0x202, (WSADAT

Алгоритм программы сервера с фрагментами программы
1. Запуск программы сервера 2. Инициализация WinSocket · WSAStartup(0x202, (WSADATA *)&buff[0]) 3. Создание сокета · my_sock = socket(AF_INET,SOCK_DGRAM,0);

Текст полностью прокомментированной программы клиента
// пример простого UDP-клиента #include <vcl.h> #pragma hdrstop #pragma argsused #include <stdio.h> #include <conio.h> #inclu

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги