Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/12: Рейтинг темы: голосов - 12, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 14.07.2010
Сообщений: 58

Вопрос по сетевой программе

30.03.2012, 22:58. Показов 2351. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!

Меня попросили написать сетевую программу, но опыта по ним нет, т.к. раньше с таким не сталкивался.
Заказчик просит использовать базу MS SQL. Я понимаю, что она намного лучше для работы с сетью, чем Acсess, но я с ней никогда не работал.
Из выше сказанного возникают вопросы.
1. Подскажите, стоит ли писать сетевую прогу, работающую с базой Access?
2. Подскажите, пожалуйста, основные нюансы при создании сетевых программ.
3. Какой протокол лучше использовать?

Всем заранее огромное спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.03.2012, 22:58
Ответы с готовыми решениями:

Вопрос про сетевой фильтр
Наткнулся на интереснейший пост на блоге товарища CS (наверняка он обитает тут, не уверен под этим ли ником): ...

вопрос про сетевой адрес
Здравствуйте! Я слышал, что все сетевые устройства имеют MAC-адрес - это такой уникальный сетевой адрес и что при передачи данных в сеть...

Сетевой доступ под паролем. Вопрос...
Доброго времени суток всем, кто читает эту тему. Ситуация: одноранговая сетка на ХР Proff. Настроил доступ под паролем для определенной...

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
Цитата Сообщение от Mz@2
А про пайпы я кое-что и так знаю, но транзакции применительно к теме топика чего-то не врублюсь...
См. тут: http://msdn.microsoft.com/libr... _pipes.asp
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  [ТС]
Цитата Сообщение от CatsTail
А по-моему, лучшее решение - это WEB-приложение.
Я предлагал им это, но они хотят именно прогу для сети.
У них просто свои планы на ее будущее.
0
Messir
06.05.2012, 20:39
Цитата Сообщение от CatsTail
А по-моему, лучшее решение - это WEB-приложение.
А без разницы
Если использовать аксесс - то и в веб-приложении коллизии будут.
А если нормальный сервер - то абсолютно все равно, как его реализовывать.
CatsTail
07.05.2012, 09:41
Но Web-приложение не нужно инсталлировать... А клиент-серверную самоделку придется. На каждом рабочем месте.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.05.2012, 09:41
Помогаю со студенческими работами здесь

Вопрос по сетевой базе данных в Access 2007
могут ли несколько пользователей работать с размещенным на сетевом диске файлом локальной базой данных access 2007?

Вопрос по ограничению доступа к сетевой папке из 2-х сетей
Приветствую! Ситуация: есть комп, который 2-мя сетевухами смотрит в 2 сетки, локальную (домашнюю) и в сеть провайдера. Операционка -...

Сетевой принтер hp 3435dn зависает в программе 1С
Подскажите пжл, есть сетевой принтер hp3435dn,доки с ОС печатают без тормозов, но с программы 1с весит по 10 мин. В чем может быть причина?...

Вопрос к гуру (многопоточное приложение + сетевой доступ к устройствам)
Добрый день. Я новичек на этом форуме, да и в .NET вцелом. Занимаюсь программированием промышленных контроллеров, иногда пишу на VC++ 6, да...

Вопрос по программе.
Здравствуйте, можете помочь, соответствует ли моя программа нужным требованиям: 1. Произведение положительных элементов массивов. 2....


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
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
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru