![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
Здравствуйте толпа программеров
![]() Я засел за Java и начал создавать сетевой чат.Возникло много трудностей,возможно связанных с моим незнанием языка,которые нужно обойти.У меня к знающим есть вопрос:Как лучше реализировать чат,для того,чтоб его можно было протестировать у себя на машине с использованием сервера(напр. Apache)? Жду ответов) |
|||
|
||||
shimopus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 25.8.2006 Репутация: нет Всего: 1 |
а что за чат на Apache? Или это должен быть веб-чат?
|
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
в смысле как-то семулить сеть на апаче и проверить работу чата.Я привел как пример, я вовсе не подразумеваю его, просто я не имею представления как тестировать сетевой чат на безсетевой машине.
|
|||
|
||||
COVD |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 11 Всего: 43 |
Запускаете на своей машине сервер (Апач, Томкат,..). Открываете на этой же машине браузер и в адресе указываете http://127.0.0.1 или http://localhost . Ваш браузер пошлет запрос на ваш локальный сервер.
|
|||
|
||||
hovex |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 6.6.2006 Репутация: нет Всего: нет |
я не понял, ето будет чат с клинетом и сервером, или простой вебчат?
Если веб чат, то напиши свои сервер запускай на машине... создай саитик, где будет работат апплет, который будет связоватся с твоим сервером(програма которая слушает некий порт) и настраивай Java Police чтобы апплет смог открыват сокет соеидениние... Аплет будет послат сообшение серверу, а тот в свою очередь к собеседнику... Но самое главное серверная програма и appache должны работать обезятельно на одном и том же компутере.. |
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
С апплетиком я понял как делать)
Моя задача создать чат в Java.Swing оболочке,как приложение ,без участия апплета.Как тут лучше поступить? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
В чем проблема? -------------------- 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. |
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
Большая.
Я не знаю как его протестировать в домашних условиях. К примеру как по сети или в локальном компютере найти ВСЕ окна,которые есть чаты,и соединится с ними. |
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
Решено-как-то проверил.
Теперь огромная проблемка:Я делаю ServerSocket с портом своим.Как и предполагалось два чата одновременно не могут юзать один и тот-же порт-выскакивает ошибка мол "Все".Что делать?Каждому чату СВОЙ порт? |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 2 Всего: 151 |
Да. Иначе сервер не будет знать, кому из приложений он отправляет ответ - ведь комбинация хоста и порта будут совпадать.
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
Каждому чат серверу, нужен свой порт. Но никто не запрещает на одном сервере держать несколько каналов. -------------------- 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. |
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
Допустим...
Много портов я сделаю. Теперь нужно решить мощную проблемму:семулировать сеть и протестить всю связку.С помощью какой софтинки лучше? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
1. Ты можешь использовать 127.0.0.1
2. Если ты хочешь тестировать реальную сетевую нагрузку, тебе понадобится сесть и несколько компов. -------------------- 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. |
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
Честно-мне все равно нагрузка))))Интересно или оно будет вообще работать)
Ладно.Сеть я найду.Не проблемма) Пролемка следующая в поиске:как обратится ко ВСЕЙ сети локальной ,и найти там айпихи с работающим моим чатом? |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
Надо послать широковещательный UDP пакет на определенный порт. И все чаты в данной локальной сети должны слушать этот порт, и дать некий отклик на данный пакет.
-------------------- 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. |
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
Блин(А без датаграм не получится?Мне родней ТСП)
|
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
Народ!Ктонить!Подскажите как семулить сеть для теста двух сетевых приложений?
|
|||
|
||||
BlackStar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 13.12.2006 Репутация: нет Всего: 5 |
Как вариант создать виртуальную машину в VMWare. Но это довольно трудоемко. А вообще можно отладить все на одной машине - не вижу проблемы.
|
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
Поделись реализацией)
|
|||
|
||||
BlackStar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 13.12.2006 Репутация: нет Всего: 5 |
Реализацией чего?
Вот лучше почитай сначала: Туториал по сетевым технологиям Java: http://java.sun.com/docs/books/tutorial/ne...king/index.html Конкретно по сокетами: http://java.sun.com/docs/books/tutorial/ne...kets/index.html Конкретно реализация (и запуск) клиент-сервера: http://java.sun.com/docs/books/tutorial/ne...ientServer.html |
|||
|
||||
Andyb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 7.6.2004 Где: Lille, France Репутация: 1 Всего: 5 |
Это сервер:
К нему может коннектитсяа бесконечное число клиентов данный пример можно обиграть как угодно: SSL, отправка файлов и картинок и тп... (у меня даже где то исходник такой валялся - как то тоже пытался такое делать - если интересно - пиши) --------------------
Большинство наших ошибок происходит из-за невнимательности. |
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
Спасибки за ссылки,но нажаль я на них всех бывал,и мой мультисервер имеет похожую структуру.Я уже все это реализовал,и у меня получается мультиконнект и ост. Но все же есть загвоздка:мой чат не должен иметь кучу клиентов и один сервер.Чат в себе имеет И сервер И клиент.Он должен: -Сканить всю локальную сеть на живые коннекты и чаты -Бродкастить твои сообщения и принимать чужие -И самое главное-быть одновременно и Сервером И Клиентом. Задача моя на данный момент состоит в следующем: Выбрать-ИЛИ TCP , ИЛИ UDP.Всмысле для кайфового бродкаста лучше УДП,а ТСП мне понятней)Ну это уже проблеммы разраба,а сейчас стоит задача в реализации Постоянного сканирования сети на предмет живых чатов.Вот зачем мне эмуляция сети,и совет проффи) Если заинтиресован - будь добр посоветуй решение) |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
Зачем нужно постоянное сканирование. Пусть лучше при появлениии нового клиента он рассылает пакет, уведомляющий что появился новый клиент. При выключении - пакет, что клиент вышел из сети.
А сам обмен сообщениями можно вести по TCP. -------------------- 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. |
|||
|
||||
Andyb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 7.6.2004 Где: Lille, France Репутация: 1 Всего: 5 |
IMHO проще это тогда через UDP делать, но вот надёжней ли...
--------------------
Большинство наших ошибок происходит из-за невнимательности. |
|||
|
||||
BlackStar |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 134 Регистрация: 13.12.2006 Репутация: нет Всего: 5 |
Я так подозреваю что постоянное сканирование нужно для отслеживания отвалившихся клиентов. Ведь не всегда же клиент может послать сообщение что он вышел из сети, например случай когда завис или отключили питание. |
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
Именно потому. Народ-я на UDP вообще не надеюсь-т.к. нужно на 100% знать или пакет дошел,или нет. LSD - скажи пожалуйста как разослать ВСЕМ пакет о том,что он в онлайне,с помощью TCP,именно всем живым людям в сети?Вот тогда будет мне почти все предельно ясно. Это сообщение отредактировал(а) Kero - 20.12.2006, 22:14 |
|||
|
||||
LSD |
|
||||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
Для этой цели можно сделать пульс, каждые N секунд посылается спец посылка (при условии, что за этот интервал не было передачи данных), которая сигнализирует, что клиент жив.
Широковещательных TCP соединений не существует (в отличие от UDP). Поэтому единственный гарантированный способ, это по очереди соединяться с каждым узлом сети (если они известны, а если нет, то с каждым IP адресом данной подсети). В чем проблема использовать 2 протокола? UDP - для поиска узлов в сети, TCP для передачи сообщений. -------------------- 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. |
||||
|
|||||
Kero |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
Прекрасно. Теперь мы подошли к финалу:КАК с помощью UDP найти клиентов в сети за масками типа открыт 2345 порт etc. наиболее максимально еффективно??? |
||||||
|
|||||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 19 Всего: 538 |
Что-то наподобие такого:
-------------------- 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. |
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
А можна дураку поподробней, как найти все живые адреса в локальной сети, с открытым определенным портом с помощью UDP???
Мне что-то с данного кода не очень понятно ![]() ![]() ![]() Это сообщение отредактировал(а) Kero - 21.12.2006, 15:41 |
|||
|
||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
...что-то никто не отвечает
![]() |
|||
|
||||
JavaCraft |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 139 Регистрация: 8.2.2007 Репутация: нет Всего: 1 |
А если в задачу не входит прием ответов по UDP, а нужно только разослать широковещаетльное уведомление. Вторая часть (// get their responses!) не обязательна? Эти ответы, они автоматически генерируются сетевухой или их приложение клиента генерит в ответ на уведомление? Если приложение клиента, то понятно. Не делать этого на клиенте и всё. А если сетевуха, то что будет? У меня, например, задача такая. Разослать уведомление и ждать ответов на другом TCP сокете. |
||||
|
|||||
Kero |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 173 Регистрация: 10.5.2006 Где: Винница,Украина | | Реал Репутация: нет Всего: 1 |
Спасибо.
Этот сампл с манов я уже давно видел, и все мне показывают. Я такую фичу уже реализовал-одна проблемка-протестить это у меня дома.У меня нет сети, а проект требует домашнего теста.Без маршрутизатора ,УДП не принимается и не отсылается. Что делать.... |
|||
|
||||
JavaNewb |
|
|||
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 5.3.2008 Репутация: нет Всего: нет |
А может у кого остались подобные исходники?? Очень было бы кстати посмотреть на эту реализацию!..
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Работа с сетью | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |