Ч
ЕЛЯБИНСК,
ЮУ
Р
ГУ
,
ИЕТН
Назад
Начало
Учебные материалы
Полезные библиотеки
Подразделы
Другие разделы
Библиотека для графических интерфейсов nuklear
Графическая библиотека
Консольный ввод-вывод coniow
Консольный ввод-вывод curses
Распараллеливание программ
Управляющие последовательности
Файловая система
Дата и время
21/11/2024 19:10:52
Авторизация
Имя:
Пароль:
Вход
Зарегистрироваться
Восстановить пароль
Передача данных по сети
Инициализация
Клиент
Сервер
Клиент
Подключение и передача одного сообщения. В качестве сообщения может быть не строка, а структура данных.
```c
SOCKET s=create_socket("127.0.0.1",12345,CLIENT);
if(s==INVALID_SOCKET) return 1;
char msg[1024]="Hello";
int len=strlen(msg);
// отправить 1 сообщение
send(s, msg, len, 0);
// завершить передачу
shutdown(s, SD_SEND);
int sz;
char buf[1024];
// принять ответ
if((sz = recv(s, buf, sizeof(buf), 0))>0) {
// обработка принятого сообщения
}
// закрыть канал
closesocket(s);
```
При необходимости процесс взаимодействия с сервером можно зациклить:
```c
SOCKET s=create_socket("127.0.0.1",12345,CLIENT);
if(s==INVALID_SOCKET) return 1;
while(1)
{ char msg[101]={0};
scanf("%100[^\n]%*c",msg);
if(!msg[0]) break; // если введена пустая строка
// передать строку на сервер
send(s, msg, strlen(msg), 0);
int sz;
char buf[1024];
// принять ответ
if((sz = recv(s, buf, sizeof(buf)-1, 0))>0) {
buf[sz]=0; // вывести ответ
printf("%s\n",buf);
}
else // передача была завершена сервером
break;
}
// завершить передачу
shutdown(s, SD_SEND);
closesocket(s);
```