|
0 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 58
|
|
Вопрос по сетевой программе30.03.2012, 22:58. Показов 2351. Ответов 15
Метки нет (Все метки)
Всем доброго времени суток!
Меня попросили написать сетевую программу, но опыта по ним нет, т.к. раньше с таким не сталкивался. Заказчик просит использовать базу MS SQL. Я понимаю, что она намного лучше для работы с сетью, чем Acсess, но я с ней никогда не работал. Из выше сказанного возникают вопросы. 1. Подскажите, стоит ли писать сетевую прогу, работающую с базой Access? 2. Подскажите, пожалуйста, основные нюансы при создании сетевых программ. 3. Какой протокол лучше использовать? Всем заранее огромное спасибо!
0
|
|
| 30.03.2012, 22:58 | |
|
Ответы с готовыми решениями:
15
Вопрос про сетевой фильтр вопрос про сетевой адрес
|
|
1 / 1 / 0
Регистрация: 01.05.2011
Сообщений: 203
|
|
| 31.03.2012, 21:10 | |
|
Я думаю что лучше всего используй TCP/IP .
А лучше зайди на VBStreets.ru, там помоему чтото есть из исходников по данной теме.
0
|
|
|
0 / 0 / 0
Регистрация: 04.03.2008
Сообщений: 250
|
|
| 01.04.2012, 13:56 | |
|
Сетевая - это, как я понимаю, для локальной сети, а не для Сети. Тогда TCP/IP можно не трогать.
Access-формат я бы не рекомендовал по ряду причин. MS SQL, или его бесплатный вариант MSDE. Нюансы связаны с тем, что надо а) экономить трафик б) учитывать многопользовательский режим работы Подключаться к базе лучше посредством ADO
0
|
|
|
0 / 0 / 1
Регистрация: 15.12.2007
Сообщений: 381
|
|
| 01.04.2012, 15:41 | |
|
хм ... сетевую программу.
уточни плз требования чего она должна делать потому если это должно быть нормальное разделение UI/BL (бизнес логика), то в принципе и аксес подойдет потому как сие разделение подразумевает создание 1го сервера (обрабатывающего BL) и кучу клиентов. Этот сервер спокойно может стать на классной производительной машинке и преспокойно может иметь доступ к mdb файлу аксеса. А если сервера как такового не нада и вся логика выполняется клиентами - то при использовании аксеса файл базы приходицца шарить, что не есть хорошо. А при использовании MSSQL ты получаешь торчащий в мир сервак, к токорому можешь подключится с любоко клиента на прямую.
0
|
|
|
0 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 58
|
|
| 01.04.2012, 18:11 [ТС] | |
|
Всем огромное спасибо за помощь!
Уточняю смысл программы. Программа должна: - поддерживать до 30 клиентов; - работать в режиме реального времени,т.е. все изменения должны быть видны сразу. Вся работа происходит в пределах локальной сетки. На одном кампе должна быть программа-сервер, а на остальных-клиенты, которых может быть до 30, т.е. все запросы от клиентов обрабатывает сервак. Программа основана на работе с единой базой данных. И еще. При коннекте клиента добавляем в массив еще один Winsocket. Как правильно организовать одновременную обработку запросов от клиентов, если все запросы обрабатывает одна и та же процедура. Всем респект!
0
|
|
|
0 / 0 / 1
Регистрация: 15.12.2007
Сообщений: 381
|
|
| 02.04.2012, 12:10 | |
|
уже лучче
![]() токо мой тебе совет - трижды подумай перед тем как писать аля свой сервак приложений через сокеты. VB имеет большой рак с потоками. Их реализация подобна хождению по минному полю и если тебе важен результат - советую от них отказаться. Если же их не использовать - получаешь то, собственно, о чем спрашиваешь ![]() Советую создавать серкак как COM+ приложение. Родная вещь для VB - работает сносно - уж поверь - потом легче решать проблемы с ней, чем со своей реализацией обмена данными через сеть (у сокетов своих муравьев хватает).
0
|
|
|
Messir
|
|
| 02.04.2012, 14:19 | |
|
Ну, по-хорошему вообще неплохо клиентам коннектиться непосредственно к БД, без всяких программ-серверов. Так будет и быстрее, и надежнее.
Но если без программы-сервера не обойтись - то куда проще и удобнее использовать именованные пайпы, т.к.: а) работать с нима куда проще, чем с сокетами. б) не надо отлавливать кучу сетевых ошибок. в) (самое главное) они поддерживают транзакции. |
|
|
1 / 1 / 0
Регистрация: 22.04.2011
Сообщений: 47
|
|
| 07.04.2012, 19:05 | |
|
[bold]to Messir:[/bold]
[italic]"...неплохо клиентам коннектиться непосредственно к БД, без всяких программ-серверов."[/italic] - А как на счет многопользовательского доступа и возможных коллизий (ведь вопрос был про Access)? [italic]"они поддерживают транзакции"[/italic] - если можно, поподробнее пожалюйста, что имеете ввиду?
0
|
|
|
0 / 0 / 1
Регистрация: 15.12.2007
Сообщений: 381
|
|
| 08.04.2012, 10:22 | |
|
уж извините, что вклиниваюсь ...
"...неплохо клиентам коннектиться непосредственно к БД, без всяких программ-серверов." - А как на счет многопользовательского доступа и возможных коллизий (ведь вопрос был про Access)? как я понял автору просто в новинку MSSQL и он рассматривает возможность не соскакивать с родного движка. А колизии могут быть как при коннекте непосредственно к БД так и через сервер (в случае если он многопоточный) "они поддерживают транзакции" - если можно, поподробнее пожалюйста, что имеете ввиду? почитайте про то какие есть пайпы и все станет на свои места.
0
|
|
|
1 / 1 / 0
Регистрация: 22.04.2011
Сообщений: 47
|
|
| 14.04.2012, 00:37 | |
|
Автор топика писал про 30 пользователей и базу на Access. В таком случае, если напрямую коннектиться в Access, то неизбежны коллизии и не будет никаких средств для их разруливаний. Однако, если будет посередке сервер (естественно, многопоточный, хотя необязательно), можно сериализировать общение с Access с помощью критических секций или других средств синхронизаций. И в данном случае, хотя я очень не приветствую применение Access, только посредник-сервер может спасти от неминуемого краха базы. Я также очень не советую пытаться писать этот сервер на VB по нескоьким причинам:
-во-первых, VB (точнее объект Err) не дружит с потоками, -во-вторых, сервер лучше писать в виде сервиса, что легче сделать например на Си -в-третьих, сервер на VB+Winsock будет пожирать ресурсы, наверное этого уже достаточно. А про пайпы я кое-что и так знаю, но транзакции применительно к теме топика чего-то не врублюсь...
0
|
|
|
Messir
|
||
| 15.04.2012, 15:37 | ||
|
||
|
1 / 1 / 0
Регистрация: 22.04.2011
Сообщений: 47
|
|
| 16.04.2012, 00:36 | |
|
Год назад передо мной стояла подобная задача. Я написал сервер-посредник на сокетах. Вообще-то я начинал именно с пайпов, но больше 396 байтов за 1 раз через них передавать не удавалось, а мне это не очень понравилось. В конечном итоге, спасибо Messir'у, написал многпоточный сервер в виде сервиса на Си с использованием асинхронных сокетов. Работает до сих пор и не плохо.
Правда в качестве БД у меня MySQL и соответственно, проблем с многопоточным доступом нет. А почему не дал прямой доступ к серверу: потому, что на тот момент MySQL не поддерживал хранимые процедуры, а для реализации всего функционала без этого, требовалось предоставлять слижком большие привилегии пользователям, что было недопустимо с точки зрения безопасности системы.
0
|
|
|
CatsTail
|
|
| 05.05.2012, 00:03 | |
|
А по-моему, лучшее решение - это WEB-приложение.
|
|
|
0 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 58
|
||
| 05.05.2012, 17:43 [ТС] | ||
У них просто свои планы на ее будущее.
0
|
||
|
Messir
|
||
| 06.05.2012, 20:39 | ||
![]() Если использовать аксесс - то и в веб-приложении коллизии будут. А если нормальный сервер - то абсолютно все равно, как его реализовывать. |
||
|
CatsTail
|
|
| 07.05.2012, 09:41 | |
|
Но Web-приложение не нужно инсталлировать... А клиент-серверную самоделку придется. На каждом рабочем месте.
|
|
| 07.05.2012, 09:41 | |
|
Помогаю со студенческими работами здесь
16
Вопрос по сетевой базе данных в Access 2007 Вопрос по ограничению доступа к сетевой папке из 2-х сетей Сетевой принтер hp 3435dn зависает в программе 1С Вопрос к гуру (многопоточное приложение + сетевой доступ к устройствам) Вопрос по программе. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git
main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели
8ATzM_2aurI
|
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2.
Задача: запретить редактирование документа, если он открыт у другого пользователя.
/ / . . .
|
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои.
А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
|