С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
 Аватар для Klendathu
6 / 6 / 0
Регистрация: 10.11.2011
Сообщений: 53

Клиент-сервер

01.12.2011, 16:45. Показов 2969. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте, направьте на пусть истинный:
До завтра нужно изучить сетевые протоколы, но у меня ничего не получается. Есть задачник, мне понравились вот эти 2 задачи:
1.
Разработать две программы – сервер и клиент. Клиент принимает от пользователя две даты – строки вида ЦЦ.ЦЦ.ЦЦЦЦ, где Ц – это любая цифра из диапазона [0-9] и отсылает серверу через именованный конвейер. Сервер принимает даты из именованного конвейера, вычисляет полное количество дней, прошедших между двумя полученными датами, и выводит его на
экран.
2.
Разработать две программы – сервер и клиент. Клиент принимает от пользователя беззнаковое целое число и отсылает серверу. Сервер принимает число. Если оно является степенью двойки, то на экран выводится показатель степени, и сообщение «не является степенью двойки» в противном случае. Для взаимодействия воспользоваться механизмом сокетов и протоколом UDP.
Остальные задачи слишком сложные и непонятные. Помогите написать эти задачи, думаю что многое пойму по-ходу решения. Использую C++

Добавлено через 12 минут
Сервер:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <winsock2.h> // Включаем использование сокетов
#pragma comment(lib, "WSock32.lib") // Используем эту библиотеку
 
using namespace std;
 
void main()
{
WSADATA wsa_data; // Информация о сокетах
SOCKET s; // Серверный сокет
 
s = NULL;
 
// 1. Инициализируем сокеты (требуем версию 1.1 как минимум)
if (WSAStartup(0x101,&wsa_data) != 0) return;
 
// 2. Открываем серверный сокет
s = socket(AF_INET, SOCK_STREAM, 0);
if (s == INVALID_SOCKET) return;
 
// 3. Привязываем сокет к адресу
sockaddr_in addr; // Для хранения адреса
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_addr.S_un.S_addr = INADDR_ANY;
addr.sin_port = htons(777); // Наш порт, который будем открывать для коннектов
if (bind(s, (LPSOCKADDR)&addr, sizeof(addr)) != 0) return;
 
// 4. Устанавливаем сокет в режим прослушивания
if (listen(s, 1) == SOCKET_ERROR) return;
 
// 5. Бесконечный цикл получения соединений
while (true)
{
// Принимаем соединения от клиентов
int from_len;
SOCKET client_socket; // Сокет клиента
sockaddr_in client_addr; // Адрес клиента
 
from_len = sizeof(client_addr);
client_socket = accept(s, (LPSOCKADDR)&client_addr, &from_len);
 
// Проверяем ошибочность соединения
if (client_socket == INVALID_SOCKET)
continue; // Если что опять переходим в режим ожидания соединения
 
cout << "Client connected [" << inet_ntoa(client_addr.sin_addr) << "]..." << endl;
 
// Обмениваемся данными с клиентом.
// Тут должны быть вызовы функций send и recv. Функция recv, если что,
// ждет пока клиент что-нибудь пошлет, send отсылает данные и сразу
// возвращает управление программе
 
// Отсылаем "приветствие" подключившемуся клиенту
char *greeting = "Fuck off!!!";
send(client_socket, greeting, (int)strlen(greeting),0);
 
// Получаем ответ клиента
char buf[1024];
int len = recv(client_socket, buf, 1024, 0);
if (len != SOCKET_ERROR)
{
buf[len] = 0; // Не забываем ставить терминирующий ноль (если мы строку принимаем)
cout << buf << endl;
}
 
// Закрываем сокет
closesocket(client_socket);
 
// Переходим к следующему клиенту
cout << "...disconnected" << endl;
}
 
// 6. Закрываем серверный сокет
closesocket(s);
 
// 7. Завершаем работу с сокетами
WSACleanup();
}
Не компилируется, выдает ошибку.

Добавлено через 19 часов 16 минут
Помогите пожалуйста! В чем ошибка?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.12.2011, 16:45
Ответы с готовыми решениями:

Клиент-Серверное приложение. Как сделать, чтобы сервер сам отправлял сообщения на клиент
Добрый день всем. Проблема заключается в следующем: Есть клиент-серверное приложение, хочу реализовать своего рода защиту, чтобы при...

Tcp ip клиент-сервер C++ сервер выводит мусор
server # include &lt;sys/types.h&gt; # include &lt;iostream&gt; # include &lt;winsock2.h&gt; # include &lt;stdlib.h&gt; # pragma comment (lib,...

Клиент/сервер: клиент посылает серверу слово; определить, является ли это слово палиндромом
Осуществить взаимодействие клиента и сервера на основе протокола TCP/IP. Функционирование клиента и сервера реализовать следующим образом:...

2
 Аватар для Klendathu
6 / 6 / 0
Регистрация: 10.11.2011
Сообщений: 53
01.12.2011, 17:33  [ТС]
Блин!!! В интернете нет нормальных уроков по сокетам! Одни кривые примеры для Visual C++. Я программирую на Far.

1. Почему Void Main??? У меня выдает ошибку что нет возращаемого значения. Меняю на int main()
Цитата Сообщение от Klendathu Посмотреть сообщение
void main()
2. Что за такой return который ничего не возращает??? Ставлю на return 0
Цитата Сообщение от Klendathu Посмотреть сообщение
if (WSAStartup(0x101,&wsa_data) != 0) return;
3. В конце концов выдает ошибку:
Миниатюры
Клиент-сервер  
0
 Аватар для Klendathu
6 / 6 / 0
Регистрация: 10.11.2011
Сообщений: 53
01.12.2011, 20:30  [ТС]
Если никто не в силах помочь, посоветуйте книгу по сокетам, или уроки
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.12.2011, 20:30
Помогаю со студенческими работами здесь

клиент-сервер
Простой чат(клиент отправляет на сервер сообщение,сервер получает и так же может отправить клиенту сообщение).Всё работает,только если в...

Клиент - Сервер
У меня вот тоже такой вопрос по многопоточности... Только начала с этим разбираться... Вот у меня есть Сервер, есть Клиент... Мне...

Клиент сервер
Здравствуйте, задали в институте написать клиент серверное приложение на си через сокеты. Может у кого нибудь уже есть готовое решение или...

Клиент и сервер
Есть программа клиент-сервер. После запуска сервера подключается клиент. Все нормально работает. Есть еще задание. Как после...

Клиент-сервер
Добрый вечер. Моя цель - реализовать клиент-серверную программу, использующую сокеты для соединения. КЛиент при запуске открывает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru