|
20 / 20 / 6
Регистрация: 18.07.2014
Сообщений: 73
|
|
.NET 4.x Асинхронное клиент серверное приложение05.09.2017, 16:33. Показов 3679. Ответов 20
Метки нет (Все метки)
Всем доброго времени суток, а так же спасибо всем кто загляну и не прошёл мимо.
Сразу предупреждаю, вопросов от меня будет много, но все они будут по порядку и по мере продвижения проекта. Слать меня в гугль, «курить» маны, в соседние ветки не нужно (разве что только в перуанскую деревню если что %) ) Всё что можно было нагуглено – прочитано, но остались сомнения или недопонимания чего то, поэтому вопросы и будут идти по порядку возникновения проблем, кроме того что то придётся мне изучать на лету. Почему обращаюсь к вам: 1) Ранее никогда не писал асинхронные клиент-серверные приложения на шарпе в общем то и на других языках ибо как бы не было нужды, поэтому острая нужда в направлении меня в нужную сторону, примеры и т.д. (а может уже кто то поделится уже реализованными вещами) 2) меня заставили, так уж сложились звёзды %)) Вопрос: Подскажите, пожалуйста, какую реализацию сервера лучше (оптимально) всего взять в качестве каркаса для будущего приложения. Рассматривается 1) https://docs.microsoft.com/en-... et-example 2) https://msdn.microsoft.com/ru-... 35942.aspx (Листинг 4. Асинхронный сервер)
0
|
|
| 05.09.2017, 16:33 | |
|
Ответы с готовыми решениями:
20
Клиент-Серверное приложение, асинхронное программирование Клиент-серверное приложение: как определить, что сервер/клиент не отвечает в течении определенного времени
|
|
|
||
| 05.09.2017, 17:10 | ||
|
Это повлияет на то, как его удобнее будет реализовывать.
0
|
||
|
20 / 20 / 6
Регистрация: 18.07.2014
Сообщений: 73
|
|
| 05.09.2017, 17:35 [ТС] | |
|
Задача, которую следует решить: Имеется стороннее ПО (нет у него ни апи, ни сетевых функций и прочих вкусностей) стоящее в сегменте ТКСПД (телекоммуникационная корпоративная сеть передачи данных) которое юзает в качестве БД SQLite, необходимо создать свой сервер (который может быть ещё и подчинённым) который будет творить свои «тёмные» вещи с этим сторонним ПО (работать с его гуи по команде и лесть в его БД) и отдавать труды своего творения на клиенты (примерное кол-во будет 2-3к). Всё что касается трудов сервера в отношении стороннего ПО вопросов у меня не вызывает, а вот вопросов о передачи «трудов» у меня много. При этом всём нагромождении юзать WCF нельзя многое бы решил через него, написано должно быть на нет 4.0 с использованием асинхронного сервера и клиентов. По факту как выглядит в глазах заставивших меня - посылается команда на сервер он отрабатывает действие лезит с гуи стороннего по забирает из него что надо и отдаёт это клиенту запросившему инфу, скажем на ПО произошло событие сервак должен взять его и разослать всем подключенным клиентам + ещё они хотят через это сервер ещё обмениваться сообщениями + кое что будет передаваться из SQLite. Ну в общем как то так
0
|
|
|
|
||
| 05.09.2017, 17:44 | ||
|
0
|
||
|
20 / 20 / 6
Регистрация: 18.07.2014
Сообщений: 73
|
||||||
| 05.09.2017, 18:01 [ТС] | ||||||
|
Проблемы по факту:
1) во мне так как ранее не работал с асинхронными клиентами и серверами - но это восполнится быстро, хотелось бы изначально выбрать правильный каркас с которого начать и двигаться, а не перепиливать потом. Поэтому пересмотрел все варианты (во многих что то понятно а что то нет) приглянулись 2 указанных из них решил выбрать но открыт и для других предложений в примере от майкрософта напрягло
2) Проблема в моём начальстве которое не шарят в программировании но зато умеет придумывать всякие вкусности прикрываясь словами "в тренде", "инновации" и т.д. 3) В ОЗИ (отделе защиты информации) которые запретили юзать WCF, сервак и клиент должен быть написан полностью от и до без использования сторонних библиотек с использованием асинхронных сокетов и т.д. и тп. + не облегчает жизнь то что всё это ещё под надзором VipNet координатора в общем все сложно PS: сразу предвкушавшая вопрос где я работаю - ПФР в мухосранске в должности автоматизатора, а так как я единственный который хоть что то пишет пнули в меня
0
|
||||||
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,569
|
||
| 05.09.2017, 18:11 | ||
|
2
|
||
|
20 / 20 / 6
Регистрация: 18.07.2014
Сообщений: 73
|
|
| 05.09.2017, 18:22 [ТС] | |
|
Я сказал что нельзя пользоваться сторонними библиотеками которые уже реализуют создание сокетов для клиента или сервера, а так же любые другие сторонние библиотеки не входящие в состав .Net 4.0 ну короче если кто то чёто написал и засунул в длл юзать уже нельзя с точки зрения начальства сервак и клиент должен вообще выглядеть в виде одного экзе файла + ини файл настроек и всё, поэтому приходится сочинять собственное говно для работы с файлами экзеля на прямую а не юзать какую нить вкусность аля NPIO. что касается WCF то его тупо нельзя юзать и всё хоть убейся - правила игры сочиняю не я сказали не юзать ни чего из WCF и всё на этом разговор закончен.
В общем пока не получил ответа какую конструкцию лучше юзать 1 или 2 а вопрос пока стоит в этом что лучше взять в качестве каркаса 1 вариант или 2 ну или вообще посмотреть в какую то другую сторону.
0
|
|
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,945
|
|
| 05.09.2017, 19:02 | |
|
Coroners, WCF тупо удобнее, чем ручная низкоуровневая работа через TCP, так что рекомендую его (конечно, если не идёт речи о выдумывании своего протокола, или работе с существующим).
Не по теме:
1
|
|
|
20 / 20 / 6
Регистрация: 18.07.2014
Сообщений: 73
|
|
| 05.09.2017, 19:23 [ТС] | |
|
Usaga спасибо конечно за пост но как я уже сказал WCF юзать НИ КАК от слова СОВСЕМ и это уже не обсуждается ни под каким соусом ОЗИ сказали нет значит нет и на их мнение я повлиять не могу и тараканов со стразиками травить в их головах тоже. Так же вам да и наверное мне да и конечному пользаку тоже плевать сколько будет файлов и каких в папке приложения но начальство моё не согласно их видение тупо 1 экзешник + 1 инишник так оно видит, так оно хочет, так оно секурно, безгеморно и т.д. - это их требования а не мои, поэтому я сижу и выдумываю как бы всё это замутить, собственно за этим я сюда и пришёл и пока с единственным вопросом что лучше взять из указанного в первом моём посте, какой сервак из примеров сможет держать больше клиентов, быстрее отрабатывает, стабильнее, не будет разрывать соединение после того как принял данные, не будет рвать соединение по таймауту и т.д. если при дальнейшей реализации будут возникать вопросы я их пошагово и задам, а пока мы остановились на 0 шаге что выбрать в виде каркаса....
0
|
|
|
|
||
| 05.09.2017, 19:44 | ||
|
0
|
||
|
20 / 20 / 6
Регистрация: 18.07.2014
Сообщений: 73
|
|||||||||||
| 05.09.2017, 20:03 [ТС] | |||||||||||
|
insite2012 огромное спасибо, но меня настораживает в первом примере использование бесконечного цикла
0
|
|||||||||||
|
|
||||
| 05.09.2017, 20:14 | ||||
Сообщение было отмечено Coroners как решение
Решение
1
|
||||
|
20 / 20 / 6
Регистрация: 18.07.2014
Сообщений: 73
|
|
| 05.09.2017, 20:24 [ТС] | |
|
уже 2 ночи и может туплю но означает ли это что всего только 10 клиентов сможет подключится к серверу или это одновременно 10 а пока не умрёт пул ?
0
|
|
|
|
||
| 05.09.2017, 20:47 | ||
|
0
|
||
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,945
|
|
| 06.09.2017, 03:12 | |
|
Coroners, я понимаю, что это ни на что не повлияет, но я просто обязан заметить три вещи относящиеся к WCF (можете передать их в отдел ОЗИ):
1) WCF является частью .NET Framework, лежит в GAC (соответственно, имеет строгое имя и подпись); 2) WCF умеет в шифрование и сжатие трафика, TCP - нет, так что кто тут секьюрнее очевидно невооружённым глазом; 3) Ваш отдельностоящий EXE один чёрт будет использовать сборки (DLL-ки) .NET Framework-а, так что, если ОЗИ боится подмены сборки WCF-а, то ему нужно и бояться подмены сборки System.Net.Socket, в которой лежат классы для работы с TCP; Так что смысла неиспользовать WCF нет. Чисто с технической точки зрения он - такая же часть .NET как и простые сокеты. Но имеет куда больше возможнойстей, в том числе и шифрование трафика, проброс исключений, прозрачная для пользователя сериализация. Но, видимо, ОЗИ виднее, кто я такой, что бы оспаривать
3
|
|
|
20 / 20 / 6
Регистрация: 18.07.2014
Сообщений: 73
|
|
| 06.09.2017, 05:39 [ТС] | |
|
Usaga с вашими доводами я полностью согласен и всё сказанное вами тоже прозвучало из моих уст и да мне легче было бы использовать WCF а не изобретать новые велосипеды обтачивая их напильником, при этом реализация безумного плана моего начальства мной в одну каску было бы быстрее и т.д. но к сожалению я тоже особо ни кто в ОЗИ и тут как в армии сказали капать - какаю, сказали не копать ни капаю, а всё остальное от лукавого - такова политика партии (вообще хочу уйти из этой конторы нафиг но к сожалению некуда - напряженка с рабочими местами из за мухосранска). Не знаю чего там ОЗИ боится а может оно им технически не алё я не знаю по крайне мере внятных и вразумительных ответов я от них не получил. На всю секурность и шифрование ответ один мы под управлением випнет координаторов и випнет мониторов которые по факту (а так оно и есть) шифруют любой входящий и исходящий трафик, юзают виртуальние ипы и т.д. так что шифрование, сжатие трафика для них не аргумент ни разу. Как я вообще понял вся эта затея из разряда "хочух", на серваке соит моя тулза которая делает всё чё надо но вот им "прихотелось" чтобы оно ещё слало данные в толстые клиенты.... в общем борюсь и пытаюсь донести до их умов ... но пока безрезультатно
1
|
|
|
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,945
|
|
| 06.09.2017, 05:53 | |
|
Coroners, ну, тогда выбора у вас нет (или есть - использовать WCF и никому об этом не сказать, я так понял, что всё равно никто не шарит, чтобы это проверить).
Какая из реализаций лучше для вас подойдёт сказать сложно. От вашей задачи зависит. Я бы рассматривал вариант с работой с сетью полностью в отдельном потоке. Так было бы больше места для манёвра. Если общения с сетью мало и оно простое, то можно и асинхронный вариант рассмотреть, но лично мне он не особо нравиться. Запустил отдельный поток - и всё. Если данные придут - дёрнется event. Надо отправить что-то - положи в очередь на отправку. Всё просто.
0
|
|
|
|
||
| 06.09.2017, 20:10 | ||
), а потом пройтись по программе обфускатором+протектор, и тогда там сам черт не разберет, на чем там реально написано.
0
|
||
|
20 / 20 / 6
Регистрация: 18.07.2014
Сообщений: 73
|
|
| 07.09.2017, 13:54 [ТС] | |
|
в общем 2 дня боёв с боевыми садамитами из ОЗИ и прочего начальства результата не принесли.... развернул их же метадами в лоб используя их же бумажки, сказал чтобы они разрабатывали протокол который будет поверх TCP коль они такие секурные, чтоб утвердили этот протокол и внесли его в список ФАП, предоставили мне список библиотек среды .Net которые я могу юзать и подключать в using а так же все классы, методы и т.д. находящиеся в них, чтобы они потом могли позырить чё я накодил и ненафигачил ли им левого, которое могу заюзать в своих коварных целях - всё оформил официальной бумажкой.....
Надо было видеть как зашевелился этот муравейник "хочух".... ждёмс результата
2
|
|
| 07.09.2017, 15:10 | |
|
Не по теме: Coroners, ну ни фига себе... Это ж надо так не хотеть делать тупую работу! Похвально!
0
|
|
| 07.09.2017, 15:10 | |
|
Помогаю со студенческими работами здесь
20
Клиент-серверное приложение Закрывается клиент-серверное приложение Как написать клиент-серверное приложение Клиент-серверное приложение по Интернету с динамическим IP Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
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
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|