![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
Нуно написать прогу, "Клиент - сервер" с ипользованием БД. Значицца JDBC знаю хорошо (с этим проблем не будет). Но вот проблема с "клиент - сервером", не понимаю, как следует организовать работу. Нуно сделать что то типа: Клиент (имеет GUI интерфейс) посылает запрос на сервер, тот в сою очередь берет данные из БД и отсылает назад. Ток как это реализовать - понятия не имею!!!
Хотелось бы чтоб подсказали, каким образом, серверу (кот берет данные из БД) передать эти данные клиенту, и отобразить в красивой Свинговской таблице?!?!?!? ![]() Если не сложно, выложите плз пример кода, кот демонстрирует, простейший обмен между клиентом и сервером в GUI интерфейсе !!! |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: нет Всего: 31 |
У тебя простая клиент-серверная модель? Тогда всё просто. Клиентская часть всё рисует и даёт изменять, а данные берёт и кладёт через обращение к серверу. Серверная часть тупо сидит и ждёт, чего ей прикажут. Приказали выдать некие данные - лезет в БД и выдаёт. Приказали записать - пишет.
Общение между двумя частями реализовать можно по-разному. Тут тебе и сокеты, и пайпы, и флопинет, и соап, и много чего ещё можно придумать. Даже тупо через работу с файлом можно реализовать. ![]() Выбор обычно либо заранее определяется требованиями заказчика, либо производится исходя из имеющихся возможностей и знаний. Добавлено через 1 минуту и 14 секунд Инициатор общения в 99% - клиент (изредка требуется реализовать возможность синхронизации неких кешируемых данных на различных клиентах - тогда инициатором выступает сервер). -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
А на этом если можно по-подробнее . Я се так представляю: Сервер берет данные из базы, записывает в одну переменную (с разделителями), пересылает на клиент, тот в свою очередь через StringTokenizer разделяет обратно и записывает в JTable . Так?? Иль схема иная??? |
|||
|
||||
nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: нет Всего: 31 |
С сокетами я ни разу не работал, поэтому ничего про них не скажу.
А вот по поводу пересылки - да, приведённый тобою вариант является одним из возможных. Я бы только все значения сначала прогнал через base64, чтобы в них не встречалось тех же разделителей и других потенциально опасных символов. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
Samotnik |
|
||||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
База будет простенькая (4 сущности, и 1 с экономическими расчетами), поэтому, разделителей там не будет, это я "вручную" проматрю.
![]() |
||||
|
|||||
_Michael |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
так там нет ничего сложного с сокетами. на сервере создаеш ServerSocket. а на клиенте просто Socket и все. Вот куски кода клиента. уже их повставляеш куда надо и как будет угодно
аналогично используеш out для записи в сокет. С серверСокетом думаю проблем не будет. аналогично как с клиентским, только хоста не надо указывать, просто
![]() Это сообщение отредактировал(а) _Michael - 2.10.2007, 21:28 -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
||||||
|
|||||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
А с многопоточностью, как быть? (Много клиентов типа должно быть !)
|
|||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
ну ето не знаю. ты сначала реализуй для одного клиента чтоб работало корректно. А потом запусти два или три клиента одновременно посмотри что будет. и уже потом будем разбираться.
![]() ![]() -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
Maverick |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1307 Регистрация: 22.9.2003 Где: Odessa, Ukraine Репутация: нет Всего: 10 |
а на фига это все вручную писать? 21 век на дворе... существуют веб-сервера, сервлет- ежб- контейнеры... ?? зачем писать все на таком низком уровне???
|
|||
|
||||
Samotnik |
|
|||
![]() Super star ! ![]() ![]() ![]() ![]() Профиль Группа: Awaiting Authorisation Сообщений: 7192 Регистрация: 4.11.2006 Где: Минск City Репутация: нет Всего: 191 |
||||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
![]() -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 1 Всего: 56 |
всё просто. недавно такое же задание делал )))
значиццо так: заходишь в Ява Альманах и смотришь 4 примера: 1) http://www.exampledepot.com/egs/java.net/C...rverSocket.html 2) http://www.exampledepot.com/egs/java.net/C...cket.html?l=rel 3) http://www.exampledepot.com/egs/java.net/R...cket.html?l=rel 4) http://www.exampledepot.com/egs/java.net/W...cket.html?l=rel Многопоточность тебе надо будет делать в примере 1. Вот так:
В функции WORKWITHKLIENT реализовываешь примеры 3 и 4. Вот и всё)) |
|||
|
||||
_Michael |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 23.6.2007 Где: з полонини Репутация: 1 Всего: 6 |
v2v, отличный пример
![]() -------------------- ...не убивайся ни о чем - все временно, хоть ночь темна но светлым днем беременна... Саади |
|||
|
||||
v2v |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1620 Регистрация: 20.9.2006 Где: Киев Репутация: 1 Всего: 56 |
_Michael, это можно отмечать в репутации
![]() |
|||
|
||||
jsse |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 99 Регистрация: 1.5.2006 Где: Кривой Рог Репутация: нет Всего: 2 |
Можно сделать client-server на apache xmlrpc, многопоточность, простота использования. Но простота жертвуется производительностью, т.к. для отправки запроса и получения ответа формируется xml документ который занимает 80% ответа. При небольшом объеме обмена данных и скоростном соединении это не ощущается.
Работает просто - клиент вызывает ф-цию на сервере и получает ответ. // SERVER
В качестве аргумента можно передавать как простые типы так и массивы, HashMap. |
||||
|
|||||
dotSquid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 24.11.2007 Репутация: нет Всего: нет |
Юзаю этот apache xmlrpc, но сервер какой-то однозадачный. Если одновременно обращаются два клиента, то обслуживаются они последовательно. Как лечить?
|
|||
|
||||
dotSquid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 24.11.2007 Репутация: нет Всего: нет |
Товарищи, очень прошу помощи. В этой теме разбираюсь плохо, и разбираться в сути времени нет, а нужно скоро сдавать проект.
|
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
Судя по всему xml-rpc поддерживает многопоточность. Твои методы нигде не используют synchronized?
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
dotSquid |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 24.11.2007 Репутация: нет Всего: нет |
Убейте меня ржавой консервной банкой, действительно, тупанул с synchronized. Огромное спасибо за то, что открыл глаза
|
|||
|
||||
CrasyMen |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 264 Регистрация: 19.12.2006 Репутация: нет Всего: 3 |
Samotnik, поделись исходником, плз. Буду премного благодарен.
-------------------- Человек просто обязан ошибаться, раз другие учатся на его ошибках. [color=skyblue]Хочу сменить ник и сменю как только дадут такую возможность.[/color] |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |