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

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

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

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

// пример простого UDP-клиента

#include <vcl.h>

#pragma hdrstop

#pragma argsused

#include <stdio.h>

#include <conio.h>

#include <string.h>

#include <winsock2.h>

#include <windows.h>

#include <math.hpp>

#include "winbase.h"

 

#define PORT 666

 

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

{

char* SERVERADDR="127.0.0.1";

char buff[10 * 1014];

LARGE_INTEGER m_sw_freq,counter1,counter2;

QueryPerformanceFrequency(&m_sw_freq);//инициализация таймера

printf("UDP CLIENTnType quit to quitn");

 

// Шаг 1 - иницилизация библиотеки Winsocks

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

{

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

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

getch();

return -1;

}

 

// Шаг 2 - открытие сокета

SOCKET my_sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

if (my_sock == INVALID_SOCKET)

{

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

WSACleanup();

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

getch();

return -1;

}

 

// Шаг 3 - обмен сообщений с сервером

HOSTENT *hst;

sockaddr_in dest_addr;

 

dest_addr.sin_family = AF_INET;

dest_addr.sin_port = htons(PORT);

 

// ввод IP адресса сервера

printf("Input Server UDP addr:");

gets(SERVERADDR);

// определение IP-адреса узла

if (inet_addr(SERVERADDR) != INADDR_NONE)

dest_addr.sin_addr.s_addr = inet_addr(SERVERADDR);

else

{

if (hst = gethostbyname(SERVERADDR))

dest_addr.sin_addr.s_addr = ((unsigned long **) hst->h_addr_list)[0][0];

else

{

printf("Unknown host: %dn", WSAGetLastError());

closesocket(my_sock);

WSACleanup();

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

getch();

return -1;

}

}

while (1)

{

// чтение сообщения с клавиатуры

printf("S<=C: "); fgets(&buff[0], sizeof(buff) - 1, stdin);

if (!strcmp(&buff[0], "quitn")) break;

QueryPerformanceCounter(&counter1);//чтение начального системного времени

// Передача сообщений на сервер

sendto(my_sock, &buff[0], strlen(&buff[0]), 0,

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

 

// Прием сообщения с сервера

sockaddr_in server_addr;

int server_addr_size = sizeof(server_addr);

 

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

(sockaddr *)&server_addr, &server_addr_size);

QueryPerformanceCounter(&counter2);//чтение конечного системного времени

 

if (n == SOCKET_ERROR)

{

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

closesocket(my_sock);

WSACleanup();

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

getch();

return -1;

}

 

buff[n] = 0;

 

// Вывод принятого с сервера сообщения на экран

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

printf("time request: %s msn",

FloatToStr(RoundTo(double(counter2.QuadPart-counter1.QuadPart)*1000/double(m_sw_freq.QuadPart),-3)));

}

 

// Шаг последний - выход

closesocket(my_sock);

WSACleanup();

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);

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

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