Добавил:
inrad
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Компьютерные сети / lab2 / UPDclient / client
.cpp// подключение необходимых библиотек
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
#include <windows.h>
#include <iostream.h>
int main(void)
{
//переменные для получения и отправки данных сокету
char buf[100], b[100];
//переменная для определения максимально доступной версии WinSock
WORD wVersionRequested;
// структура для хранения данных номера версии и др.
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD(2,2);
err = WSAStartup(wVersionRequested, &wsaData);
//проверка инициализации WinSock API
if(err != 0){return 0; }
// создание сокета
SOCKET s;
s = socket(AF_INET,SOCK_DGRAM,0);
//структура адреса
sockaddr_in add;
//стандартное значение
add.sin_family = AF_INET;
//порт ассоциированый с сокетом
add.sin_port = htons(1024);
//явное указание IP-адреса
add.sin_addr.s_addr = inet_addr("127.0.0.1");
//размер объекта структуры add
int t;
t = sizeof(add);
// ввод числа
cout<<"Enter the number of five counts"<<endl;
int chislo;
cin>>chislo;
// проверка разрядности
if ((chislo/100000==0)&&(chislo/10000!=0))
{
//преобразование в строку
_itoa(chislo, buf, 10);
//отправка данных сокету
sendto(s, buf, lstrlen(buf), 0, (struct sockaddr*) &add, t);
//принятие данных
int rv = recvfrom(s, b, lstrlen(b), 0, (struct sockaddr*) &add, &t);
b[rv] = '\0';
//вывод модифицированного числа
cout<<b<<endl;
}
else
{
cout<<"Error data"<<endl;
}
//закрытие сокета
closesocket(s);
//завершение работы с библиотекой
WSACleanup();
//завершение работы программы
return 0;
}