Форум программистов, компьютерный форум, киберфорум
C++: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/56: Рейтинг темы: голосов - 56, средняя оценка - 4.80
22 / 23 / 0
Регистрация: 11.02.2013
Сообщений: 88
1

Программа клиент-сервер

11.02.2013, 16:44. Показов 11327. Ответов 50
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте уважаемые программисты,
У меня к вам одна просьба,помогите пожалуйста написать программу с одним сервером и множеством клиентов.Суть программы такова : Один из сотни клиентов нажимает кнопку и она отсылает на сервер данные,загорается красная,желтая,зеленая или синяя лампочка в соответствии с нажатой кнопкой у клиента.Также в списке клиентов на сервере регистрируется время нажатия.
Пожалуйста помогите написать такую на первый взгляд не сложную программу.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2013, 16:44
Ответы с готовыми решениями:

Простейшая программа клиент-сервер
Доброго времени суток. Появилась необходимость в написании примитивного клиент-серверного...

программа "Сервер - клиент". В чем тут ошибка?
Хочу реализовать подключение клиента к серверу...когда клиента подключиться к серверу то сервер...

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

Tcp ip клиент-сервер C++ сервер выводит мусор
server # include <sys/types.h> # include <iostream> # include <winsock2.h> # include...

50
86 / 86 / 6
Регистрация: 14.01.2011
Сообщений: 265
18.03.2013, 14:02 41
Author24 — интернет-сервис помощи студентам
Сейчас уже точно не вспомню(надо проект смотреть) selectom вроде не пользовался! Создавал отдельный поток на каждое соединение!
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
18.03.2013, 14:23 42
тоже в начале смотрел на этот путь, но отказался от него в пользу однопоточности ибо камень как правило все равно один, а select + неблокирующие сокеты избавляют от "останова"
0
22 / 23 / 0
Регистрация: 11.02.2013
Сообщений: 88
18.03.2013, 22:40  [ТС] 43
Уважаемые а как можно сделать так чтобы сервер открывался в иксовом окне а не в обычном окошке?
Да и как приписать дату посылки вызова с клиентской части на сервер рядом с обозначенным на карте квадратиком?

Добавлено через 6 минут
А еще лучше было бы сделать так чтобы после нажать клиентом кнопки "послать",рядом с тем же квадратиком на карте сервера не написалось время вызова а начался отсчет в формате 23:59:59 ... Уважьте пожалуйста ))
0
86 / 86 / 6
Регистрация: 14.01.2011
Сообщений: 265
19.03.2013, 06:08 44
Тема сетевой связи очень интересна и обширна! А если по условию задачи необходимо поддерживать связь с каждым клиентом на протяжении всего сеанса связи и разрывы недопустимы! В этом случае, на сколько я понимаю, единственный вариант связи - блокирующие сокеты с многопоточностью!
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
19.03.2013, 11:06 45
Цитата Сообщение от Саид Гафаров Посмотреть сообщение
открывался в иксовом окне а не в обычном окошке
я такого термина не знаю. что имеется ввиду?
Цитата Сообщение от Саид Гафаров Посмотреть сообщение
как приписать дату посылки вызова с клиентской части на сервер рядом с обозначенным на карте квадратиком
сейчас эта дата запоминается и отображается в строке состояния вместе с адресом при наведении на маркер. ее можно отображать рядом с маркером. так же как отображается тип сервиса. можно там же писать адрес и даже делать обратный отчет. но я советую подумать хорошенько будет ли это смотреться? когда я для интереса стал приписывать дату к типу сервиса я получал достаточно уродливые по своей длине надписи. кроме того возникала необходимость так позиционировать надпись что бы она не вылазала за пределы рисунка.
Цитата Сообщение от ITDeveloper Посмотреть сообщение
блокирующие сокеты с многопоточностью
как это связано с необходимостью поддержки связи? для примера: может ли пониматься под поддержкой связи периодический пинг через UDP?
1
22 / 23 / 0
Регистрация: 11.02.2013
Сообщений: 88
19.03.2013, 13:33  [ТС] 46
Цитата Сообщение от vxg Посмотреть сообщение
я такого термина не знаю. что имеется ввиду?
Этот термин в основном используется в игровых приложениях ... и означается развертывание окна на всю площадь экрана без рамки ))) Ну это я так ... размышлял ))
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
19.03.2013, 13:59 47
развернуть можно. добавить в main_from_unit.cpp в самый конец
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
struct MonitorEnumProc_data
{
    int min_s;
    RECT window;
    RECT monitor;
};
 
static BOOL CALLBACK MonitorEnumProc
(
    HMONITOR hMonitor,
    HDC hdcMonitor,
    LPRECT lprcMonitor,
    LPARAM dwData
)
{
    MonitorEnumProc_data *data = (MonitorEnumProc_data *)dwData;
 
    int left = data->window.left > lprcMonitor->left? data->window.left : lprcMonitor->left;
    int right = data->window.right < lprcMonitor->right? data->window.right : lprcMonitor->right;
    int bottom = data->window.bottom < lprcMonitor->bottom? data->window.bottom : lprcMonitor->bottom;
    int top = data->window.top > lprcMonitor->top? data->window.top : lprcMonitor->top;
 
    if (left < right && bottom > top)
    {
        int min_s = (right - left) * (bottom - top);
        if (min_s > data->min_s)
        {
            data->min_s = min_s;
            data->monitor = *lprcMonitor;
        }
    }
}
 
static void get_selected_display_metrics
(
    const HWND hwnd,
    int * const x,
    int * const y,
    int * const w,
    int * const h
)
{
    MonitorEnumProc_data data = {-1, {0, 0, 0, 0}, {0, 0, 0, 0}};
 
    *x = 0;
    *y = 0;
    *w = GetSystemMetrics(SM_CXSCREEN);
    *h = GetSystemMetrics(SM_CYSCREEN);
 
    GetWindowRect(hwnd, &data.window);
 
    EnumDisplayMonitors(0, 0, MonitorEnumProc, (LPARAM)&data);
 
    if (data.min_s > 0)
    {
        *x = data.monitor.left;
        *y = data.monitor.top;
        *w = data.monitor.right - data.monitor.left;
        *h = data.monitor.bottom - data.monitor.top;
    }
}
и повесить на двойной клик по картинке нечто подобное
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
void __fastcall Tmain_form::ImageDblClick(TObject *Sender)
{
    static bool full_screen_mode = false;
    full_screen_mode = !full_screen_mode;
    static WINDOWPLACEMENT wp;
    if (full_screen_mode)
    {
        GetWindowPlacement(Handle, &wp);
        SetWindowLong(Handle, GWL_STYLE, -1778384896L);
 
        int x, y, w, h;
 
        get_selected_display_metrics(Handle, &x, &y, &w, &h);
 
        Left = x;
        Top = y;
        Width = w;
        Height = h;
    }
    else
    {
        SetWindowLong(Handle, GWL_STYLE, 382664704L);
        SetWindowPlacement(Handle, &wp);
    }
}
Добавлено через 1 минуту
...естественно полосы прокрутки и статусная строка сохранятся. если хотите и от них избавляться - это сложнее
1
22 / 23 / 0
Регистрация: 11.02.2013
Сообщений: 88
19.03.2013, 18:06  [ТС] 48
Я вас еще раз попрошу ...
Я так сказать сделал дизайн (цвета,расположение,надписи), но вспомнил еще об одном можно будет сделать так чтобы отправляя запрос серверу программка выводила окошко с надписью типа "Ваш запрос послан на сервер"?

Прикрепляю клиента.
Вложения
Тип файла: rar maintenance_assistant_client.rar (2.40 Мб, 13 просмотров)
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
20.03.2013, 16:41 49
Цитата Сообщение от Саид Гафаров Посмотреть сообщение
еще раз
ушло на почту
1
22 / 23 / 0
Регистрация: 11.02.2013
Сообщений: 88
22.03.2013, 14:35  [ТС] 50
Клиент и сервер не хотят коннектится друг к другу ((
0
Модератор
3386 / 2158 / 352
Регистрация: 13.01.2012
Сообщений: 8,375
22.03.2013, 15:03 51
ответил на почту
0
22.03.2013, 15:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2013, 15:03
Помогаю со студенческими работами здесь

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

Что такое программа-сервер, программа-клиент
Учусь заочно и надо контрольную сделать вкратце я и сам объясню, но надо хотя бы листов на 10...

Программа клиент-сервер
Доброго времени суток!Я делаю программу клиент-сервер на C под линуксом(Debian).У меня такой...

Программа клиент-сервер
Уважаемые знатоки и просто гуру программирования уважте пожалуйста молодого и зеленого! Помогите в...


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

Или воспользуйтесь поиском по форуму:
51
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru