Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 04.09.2015
Сообщений: 11
1

Client-Server

04.09.2015, 03:24. Показов 1651. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени.

Сначала суть: на клиенте всего пара кнопок, сообщения или файлы отправлять не надо. на сервере, при нажатии на кнопку у клиента, одна картинка заменяется другой.

Перерыл кучу инфы, разобрался как сделать чат
но не могу найти инфу, именно по отправке такой команды

учился заочно на программиста, но стех пор прошло 7 лет без намека на практику, как сделать что-то в своей форме по нажатию на кнопку помню, калькулятор даже простенький написать смогу, а вот по работе с сетью не получается ни как ((

в частности за основу брал исходник STRATEG в статье ClientSocket&ClientServer Простой пример

Добавлено через 7 минут
как понимаю, вид должен быть примерно такой ClientSocket1.Socket.??????? (tImage*.visible :=true);
где * - номер tImage
????? - не знаю, что поставить

Очень прошу помощи
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.09.2015, 03:24
Ответы с готовыми решениями:

SERVER/CLIENT
Всем саламчег!!! создал программу работающую по сети!!! есть одна загвоздка(((( при подключении...

Client-Server
Добрый день. Собрался писать прогу для отправки сообщений. Видел много вопросов по этому поводу....

UDP Server -> Client
Всем привет! Изучаю дельфи уже долгое время, вот и до сокетов добрался. Как с TCP протоколом...

Client(android) - Server (PC)
Здравствуйте. Помогите мне создать клиент-сервер приложение. Примерное описание приложения: хочу...

11
61 / 51 / 25
Регистрация: 17.12.2013
Сообщений: 243
04.09.2015, 05:32 2
Цитата Сообщение от ArhRomm Посмотреть сообщение
как понимаю, вид должен быть примерно такой ClientSocket1.Socket.??????? (tImage*.visible :=true);
где * - номер tImage
????? - не знаю, что поставить
Не правильно понимаешь.
Тебе необходимо придумать свой небольшой прикладной протокол (правила общения клиента и сервера), т.е. набор запросов к серверу и ответы на них.
Смотри на пример чата с отправкой текстовых сообщений.
Например:
При нажатии на кнопку, клиент шлет серверу запрос: ChangeImage n (где n - это номер картинки).
Сервер, получив и разобрав запрос, ищет картинку с нужным номером. Если находит, то меняет ее и шлет ответ клиенту: OK. Если не находит, то ничего не меняет и шлет в ответ: ImageNotFound.

Идея ясна?
0
0 / 0 / 0
Регистрация: 04.09.2015
Сообщений: 11
04.09.2015, 05:42  [ТС] 3
не совсем
а ответ от сервера обязателен?

на сколько я понимаю, весь обмен между клиентом и сервером идет через "ClientSocket1.Socket."
или нет?
0
3530 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
04.09.2015, 10:31 4
Цитата Сообщение от ArhRomm Посмотреть сообщение
ответ от сервера обязателен?
Если клиенту по барабану исполнил ли в действительности сервер то что от него требовалось, то не обязателен
0
0 / 0 / 0
Регистрация: 04.09.2015
Сообщений: 11
05.09.2015, 06:11  [ТС] 5
клиенту все равно

суть такая: работаю админом, решил для пользователей сделать некое подобие хелп деска
клиент: 4 кнопки, тыкает с чем проблема, админ пребежал сделал
сервер: план этажа, отрисованы столы, увидел, где иконка изменила цвет, туда и идет

поставил бы нормальный хелп деск и не мучался бы, но специфика такая, что у пользователей нет времени писать заявки
0
61 / 51 / 25
Регистрация: 17.12.2013
Сообщений: 243
08.09.2015, 05:28 6
Я хоть и активно практикую кодинг, тоже работаю админом.
ИМХО, нет необходимости изобретать велосипед. Вполне достаточно телефонии, корпоративного чата и почты.

ЗЫ Плохая тенденция - админу БЕГАТЬ!!! =) Позвонили? Подключись у удаленно не вешая трубки и все сделал (если есть IP телефония - гарнитура и софтфон тебе в помощь).

Добавлено через 3 минуты
ЗЗЫ И еще! Задайся вопросом: Сколько времени ты на написание потратишь? кто тебе заплатит за это время и потраченные силы? (только ради самообразования если, но и тогда, можно наваять что-нибудь более полезное)
0
0 / 0 / 0
Регистрация: 04.09.2015
Сообщений: 11
08.09.2015, 06:20  [ТС] 7
Цитата Сообщение от KMSNasgool Посмотреть сообщение
Я хоть и активно практикую кодинг, тоже работаю админом.
ИМХО, нет необходимости изобретать велосипед. Вполне достаточно телефонии, корпоративного чата и почты.
ЗЫ Плохая тенденция - админу БЕГАТЬ!!! =) Позвонили? Подключись у удаленно не вешая трубки и все сделал (если есть IP телефония - гарнитура и софтфон тебе в помощь).
Добавлено через 3 минуты
ЗЗЫ И еще! Задайся вопросом: Сколько времени ты на написание потратишь? кто тебе заплатит за это время и потраченные силы? (только ради самообразования если, но и тогда, можно наваять что-нибудь более полезное)
1. чисто для себя, и других админов
2. чат/телефония не вариант, ибо и так сидят операторы на телефоне и с работой у них не все так просто (подписка о не разглашении, детали писать не могу)
3. по тому и приходится, что приходится все уточнять на месте, поставил бы норм хелп деск с веб-мордой и не парился бы, где они они писали все проблемы и расписывали, что не робит, но специфика работы....

Добавлено через 6 минут
прошу тапками не кидать, знаю, что это говнокод
лучше расскажите, что почитать (темы в книгах), что бы сделать код меньше

клиенты
Delphi
1
ClientSocket1.Socket.SendText('1');
и так по каждой кнопке

сервер
Delphi
1
2
3
4
5
6
7
8
9
10
11
begin
   s := Socket.ReceiveText;
//1--------------------
    if s = '10' then
      image10.Visible :=true;
      if s = '11' then
      image11.Visible :=true;
      if s = '12' then
      image12.Visible :=true;
      if s = '13' then
      image13.Visible :=true;
знаю, что это костыли, как реализовать по другому, не понимаю
ребят, не прошу готовый код
только темы в книгах, который читать
в идеале ссылки на форумы
0
61 / 51 / 25
Регистрация: 17.12.2013
Сообщений: 243
08.09.2015, 07:09 8
Цитата Сообщение от ArhRomm Посмотреть сообщение
а ответ от сервера обязателен?
Да обязателен, твой клиент долбанул по буттону 10 раз к ряду и быстро, сервер на ресиве получил строку '11111111'. А это заметь не '1'. Ответ нужен еще и для оперативной проверки связи с сервером.

Ну или используй неблокирующий режим.
Вот пример, там смотри на организацию общения сервера и клиента, а какие команды вложишь и реакцию на них - все в твоих руках.
Как создать простенький чат?
0
0 / 0 / 0
Регистрация: 04.09.2015
Сообщений: 11
08.09.2015, 08:57  [ТС] 9
Цитата Сообщение от KMSNasgool Посмотреть сообщение
Да обязателен, твой клиент долбанул по буттону 10 раз к ряду и быстро, сервер на ресиве получил строку '11111111'. А это заметь не '1'. Ответ нужен еще и для оперативной проверки связи с сервером.
да нет, хоть занажимайся, все норм

Цитата Сообщение от KMSNasgool Посмотреть сообщение
какие команды вложишь и реакцию на них
косяк в том, что у меня картинок на форме почти 300 штук
в итоге, код уже больше 1500 строк
и еще вырастет

отсюда вопрос, как можно заменить вот это, что бы код был более компактный?
Delphi
1
2
3
4
5
6
7
8
9
10
11
begin
   s := Socket.ReceiveText;
//1--------------------
    if s = '10' then
      image10.Visible :=true;
      if s = '11' then
      image11.Visible :=true;
      if s = '12' then
      image12.Visible :=true;
      if s = '13' then
      image13.Visible :=true;
0
61 / 51 / 25
Регистрация: 17.12.2013
Сообщений: 243
08.09.2015, 09:35 10
Лучший ответ Сообщение было отмечено ArhRomm как решение

Решение

База данных (Самый простой вариант файл MSAccess рядом с exe программы) и картинки в папке на жестком диске.
В базе данных табличка с 2мя полями ID (уникальное числовое с автоинкрементом) и Path (строка с полным путем к файлу рисунка.
На форме всего 1 TImage, нет необходимости забивать их 300 штук. Мы в 1 и тот же Image будем подгружать картинку из файла.

Delphi
1
2
3
4
5
6
s := Socket.ReceiveText;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM [MyTable] WHERE ID=' + s + ';');
ADOQuery1.Active:=True;
ADOQuery1.First;
Image1.LoadFromFile(ADOQuery1.FieldByName('Path').AsString);
1
0 / 0 / 0
Регистрация: 04.09.2015
Сообщений: 11
09.09.2015, 01:48  [ТС] 11
Цитата Сообщение от KMSNasgool Посмотреть сообщение
На форме всего 1 TImage
беда в том, что пользователь не один, потому вопрос
как с однима TImage будут одображаться алармы от нескольких пользоватлей?

база будет позже
но этим вариантом я воспользуюсь, спасибо ))

Добавлено через 11 минут
Цитата Сообщение от ArhRomm Посмотреть сообщение
беда в том, что пользователь не один, потому вопрос
как с однима TImage будут одображаться алармы от нескольких пользоватлей?
виноват, туплю
херню спросил

Добавлено через 15 часов 54 минуты
Если интересно, могу выложить исходник
пока без базы
буду пытаться прикручивать ее уже в следующую смену
0
0 / 0 / 0
Регистрация: 04.09.2015
Сообщений: 11
16.09.2015, 18:22  [ТС] 12
А как закрыть тему?
0
16.09.2015, 18:22
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.09.2015, 18:22
Помогаю со студенческими работами здесь

ПРограмма c client server
c client server -ами никогда не сталкивался. Такая задача , необходимо программку переделать, в...

Client(Android) - Server(Delphi)
Необходимо чтобы клиент на Android передавал данные на сервер ПК. Проблема в том что вместо текста...

Client-Server Sockets Stringgrid
При получении инфы на сервер он перезаписывает ее в 1 строку таблицы, а нужно, чтобы в каждую...

Indy TCP Server/Client
Кто может привести пример правильно запуска сервера с использование Indy TCP Server, и правильный...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru