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. Выход из программы клиента