Алгоритм программы клиента с фрагментами программы

1. Запуск программы – клиента

2. Инициализация таймера

· QueryPerformanceFrequency(&m_sw_freq)

3. Иницилизация библиотеки Winsock

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

4. создание сокета

· SOCKET my_sock = socket(AF_INET, SOCK_DGRAM, 0)

5. Связывание сокета с сервером

· dest_addr.sin_family = AF_INET;

· dest_addr.sin_port = htons(PORT);

· dest_addr.sin_addr.s_addr = inet_addr(SERVERADDR);

6. Чтение сообщения с клавиатуры

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

7. Чтение начального системного времени

· QueryPerformanceCounter(&counter1);

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

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

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

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

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

(sockaddr *)&server_addr, &server_addr_size)

10. чтение конечного системного времени

· QueryPerformanceCounter(&counter2);

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

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

12. Вывод полученного времени на экран

· printf("time request: %s msn",

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

13. Повтор пунктов 6-12 4 раза

14. Выход из программы клиента