|
203 / 203 / 13
Регистрация: 14.10.2011
Сообщений: 227
|
|||||||||||
.NET 4.x Технология клиент-сервер. Классы клиента и сервера. Обсуждение16.10.2011, 16:02. Показов 37672. Ответов 107
Метки нет (Все метки)
В данном теме выкладываю свои классы клиента и сервера, а так же простеньких примеров реализованных на этих классах. Жду конструктивной критики, идей, предложений по улучшению, оптимизации и прочего.
Так же прошу поправлять меня, если комментарии в коде не соответствуют реальной действительности. Комментировал то как я это понимаю. P.S. с орфографией тоже туговато, так что исправляем ![]() Класс СЕРВЕРА.
Класс КЛИЕНТА
Сообщение в разработке. Примеры будут чуть позже.
35
|
|||||||||||
| 16.10.2011, 16:02 | |
|
Ответы с готовыми решениями:
107
Как вызвать Disconnect клиента (Технология Клиент-Сервер) Чат "Сервер-клиент". На сервер не могу отправить сообщение с клиента Http сервер и клиент. При попытке получить ответ клиента от сервера ошибка: Поток был недоступен для чтения |
|
7 / 7 / 0
Регистрация: 13.09.2012
Сообщений: 94
|
||
| 25.07.2013, 07:37 | ||
|
1.Выделенный IP 2.Открытые порты(как правило открываются в настройках модема) - у меня покрайней мере нужно добавить порты в "триггер портов", а так же в "виртуальные серверы" Я сам в игрушки на своих серверах так с друзьями играю Как узнать сетевой ip: 1.Нажимаешь сочетание клавиш WIN + R 2.Вводишь в полученном окне CMD 3.Вводишь в черном окошке ipconfig 4.Там должен быть написан IPv4 он то и есть сетевой
1
|
||
|
70 / 71 / 19
Регистрация: 01.05.2013
Сообщений: 279
|
|
| 25.07.2013, 10:36 | |
|
Мда... Спасибо. Купить выделенный IP проблем нет, но покупать TMeter за 3.000 как то желания нет =( Придется как то локалку делать) Спасибо всем, кто ответил)
P.S. Интересно, а где настраивать порты, если у меня интернет через кабель идет...
0
|
|
|
1 / 1 / 0
Регистрация: 31.07.2013
Сообщений: 32
|
|
| 03.08.2013, 16:07 | |
|
извините за нубо вопрос, но как сделать так что бы при выводе сообщения с одного textbox`a в другое, был переход на другую строку, а то у меня постоянно текст не переходит, а заменяется
я пробовал ExviromentNewLine, vbCrLf, WriteLine
0
|
|
|
11 / 11 / 5
Регистрация: 22.08.2013
Сообщений: 77
|
||||||||||||||||||||||||||
| 22.08.2013, 05:16 | ||||||||||||||||||||||||||
|
Я создал похожий клиент и сервер (не на tcpclient и tcplistener, а на socket) и у меня такая же проблема, как и у Nikita_Nikita, у меня закрыты все порты, как показывает практика открывать на мтс бесполезно, так вот у меня идея, мы с друзьями создавали как-то сервер майнкрафт через хамачи, может здесь тоже самое использовать? (Чисто для себя, проверять на работоспособность)
И вопрос: а возможно с закрытыми портами без хамачи и подобных создавать сервер? Возможно не так как тут, а по другому протоколу связи. Мне покоя не даёт вот эта строка (у меня программе), я понимаю, что здесь что,
Хотя мне противоречат строки:
Добавлено через 4 минуты InSiDeX, может
0
|
||||||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 15.10.2013
Сообщений: 10
|
|
| 27.12.2013, 16:44 | |
|
Господа, подскажите такой момент, если клиенты за NAT'ом, а сервак с чистым(белым) IP, прием сообщений от клиентов будет?
Заранее спасибо за понимание и поддержку!
0
|
|
|
10 / 10 / 0
Регистрация: 16.03.2012
Сообщений: 58
|
|
| 28.12.2013, 06:25 | |
|
Находясь за NAT'ом можно вызвать подключение, но не принять.
Если соединение установлено сообщения будут идти в обе стороны, и не важно кто за чем стоит. Советую почитать теорию по TCP и UDP
1
|
|
|
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 5
|
|
| 10.09.2015, 10:39 | |
|
Добрый день!
Хоть тема и "заглохла", но всё-таки спрошу именно здесь: Кто-нибудь пробовал передавать не текст, а объект? Пересмотрел кучу форумов и MSDN, везде передаётся только текст (для общения, передача простых команд и т.д.), но нигде не встречал передачу информации в другом виде (кроме как передача файлов, но это не подходит). Интересует метод передачи некоего объекта (object) от сервера клиенту. Клиент знает,что принимаемый объект имеет определенную структуру и разбирает его на составные части. Например, сервер обрабатывает какую-либо информацию и формирует список list (of object), в который входят различные типы данных (строковые, собственные классы, типизированные наборы) и передает этот список клиенту. Клиент принимает список и посредством обычного перебора элементов определяет тип каждого элемента списка и выполняет определенные действия в зависимости от типа элемента (например, строка - команда для выполнения клиентом определенных действий, а типизированный набор - это данные для вывода в таблицу и т.д.). Пробовал ли кто-нибудь сделать нечто подобное? Уже замучился искать каким образом можно передать объект...
0
|
|
|
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 5
|
|
| 10.09.2015, 12:31 | |
|
Это-то понятно, что байты передаются, я имел в виду, что в основном встречаются примеры, где передается текст, используя System.Text.Encoding.UTF8.GetBytes(data)
А вот как перевести в байты объект, я нигде не встречал... Ведь при передачи оформляется одномерный массив byte, строку перегнать в массив не составляет труда, а вот как быть если передать надо не строку? Каким образом перевести в одномерный массив объект, который содержит в себе кучу информации? Ведь еще нужно как-то определять размер массива в зависимости от того сколько "весит" объект... Как вот это сделать?...
0
|
|
|
Администратор
|
|
| 10.09.2015, 12:39 | |
|
0
|
|
|
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 5
|
|
| 10.09.2015, 13:02 | |
|
Про сериализацию я нашёл кое-что (https://www.universalthread.co... spx?ID=549), но там для записи в файл, буду дальше искать...
0
|
|
|
Администратор
|
|||||||||||
| 10.09.2015, 13:18 | |||||||||||
|
okinawa, обратите внимание на этот участок
Добавлено через 1 минуту Список наследников класса Stream
Stream - класс
0
|
|||||||||||
|
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 5
|
||||||||||||||||
| 10.09.2015, 14:35 | ||||||||||||||||
|
Хм...вот и пытаюсь понять, на примере клиент-сервера данной темы.
В общем пытаюсь модернизировать код отправки клиенту. Заранее создал класс:
или эту команду можно убрать, а передача осуществляется как раз в момент сериализации bf.Serialize(stream, data)? Тогда Flush надо ставить перед bf.Serialize. Добавлено через 1 час 7 минут Вот наткнулся на статью: http://www.osix.net/modules/article/?id=692, изучаю, может кому тоже пригодится...
0
|
||||||||||||||||
|
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 5
|
|
| 11.09.2015, 16:26 | |
|
Коллеги!
Нашёл решение проблемы: Первоначально научился сериализовывать данные и передавать в виде последовательности от клиента-серверу, но при попытке десериализации принятой последовательности на сервере возникала ошибка - сервер пытался найти сборку (приложение) в которой был сериализован объект. Нашёл статью, в которой описывается метод через создание библиотеки классов. В библиотеке описываем метод сериализации и десериализации, а также сам объект (класс), который будет использоваться для передачи от клиента серверу и обратно. Далее, библиотека подключается к клиенту и серверу и используя методы и класс объекта осуществляется передача. ссылка на источник: Невозможная десериализация другим приложением на этом же форуме. Спасибо всем!
0
|
|
|
Лень — мое второе и
|
||||||
| 08.10.2015, 15:37 | ||||||
|
Тут ещё кто-нибудь есть?
Не понял насчет отправки определенному клиенту, с помощью кода
0
|
||||||
|
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
|
||
| 14.01.2017, 13:10 | ||
|
KingManiya, при добавлении Вашего кода
Как исправить?
0
|
||
|
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
|
|
| 18.01.2017, 18:03 | |
|
Orlangur1991, да, вставлен... разобрался вроде, не внимательный(...
По первому сообщению хочу применить код для Сервера: post2074815 - не обрабатываются события! Не могу понять что не так... (Везде где вывод сообщения на msg - заменяю на MsgBox - сообщения выводятся... Так как по коду через event - ничего...
0
|
|
|
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
|
|
| 22.01.2017, 15:41 | |
|
KingManiya, разобраться, в Вашем коде из первого поста для Сервера у меня не обрабатываются события, не могу понять что не так...
msg заменяю на msgbox - работает, как нужно не отрабатывает...
0
|
|
| 22.01.2017, 15:41 | |
|
Технология создания приложений на основе многоуревневой архитектуры клиент - Web-сервер - сервер баз данных
Клиент-сервер, передать строку с клиента на сервер Клиент-Сервер. Распознавание клиента Получить ip адрес клиента (асинхронный клиент - сервер) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|