21

Re: Сервер на java

P.Y. написав:
Zolin_777 написав:
koala написав:

А у вас який IP? Хоча б перші два числа?

192.168. і так далі, в мене він змінюється

Як правило, такі адреси використовуються в локальній мережі (внутрішня ІР-адреса) — відповідно, користувачі інших провайдерів вас не побачать. Треба, щоб провайдер вам видав постійну зовнішню ІР-адресу (якщо він надає таку послугу).

ну і , напевне, щоб роутер перенаправляв по порту , на якому ведеться чат, запити на комп у внутрішній мережі, який приймає чат.

Подякували: Zolin_7771

22

Re: Сервер на java

Використовуйте JSON, який буде містити адресата та повідомлення.Сервер має приймати повідомлення та послідовно розподіляти їх по адресатам.Пошук сервера у локалці можна зробити через UDP broadcast.

23

Re: Сервер на java

P.Y. написав:
Zolin_777 написав:
koala написав:

А у вас який IP? Хоча б перші два числа?

192.168. і так далі, в мене він змінюється

Як правило, такі адреси використовуються в локальній мережі (внутрішня ІР-адреса) — відповідно, користувачі інших провайдерів вас не побачать. Треба, щоб провайдер вам видав постійну зовнішню ІР-адресу (якщо він надає таку послугу).

А якщо використати InetAddress думаю він для цього і призначений, я так розумію він використовує IP компютера в інтернеті, не можеш бути щоб два компа мали один ip, як думаєте?

24 Востаннє редагувалося fed_lviv (20.11.2017 09:15:54)

Re: Сервер на java

Zolin_777 написав:

А якщо використати InetAddress думаю він для цього і призначений, я так розумію він використовує IP компютера в інтернеті, не можеш бути щоб два компа мали один ip, як думаєте?

*FACEPALM*
Все що Вам потрібно це серверна та клієнтська частини. В них використовувати Socket та багатопоточність. А далі просто в налаштуваннях програмок (чи в самому коді) змінювати IP та порт.
Чи то зовнішній IP чи внутрішній від цього код не зміниться. Можна тестувати в себе на ПК запустити декілька клієнтів, можна в локальній мережі з IP 19......., можна, якщо є бажання і можливість замовити в провайдера зовнішній IP. АЛЕ КОД ОДИН ДЛЯ ВСІХ.

Подякували: leofun011

25

Re: Сервер на java

fed_lviv написав:
Zolin_777 написав:

А якщо використати InetAddress думаю він для цього і призначений, я так розумію він використовує IP компютера в інтернеті, не можеш бути щоб два компа мали один ip, як думаєте?

*FACEPALM*
Все що Вам потрібно це серверна та клієнтська частини. В них використовувати Socket та багатопоточність. А далі просто в налаштуваннях програмок (чи в самому коді) змінювати IP та порт.
Чи то зовнішній IP чи внутрішній від цього код не зміниться. Можна тестувати в себе на ПК запустити декілька клієнтів, можна в локальній мережі з IP 19......., можна, якщо є бажання і можливість замовити в провайдера зовнішній IP. АЛЕ КОД ОДИН ДЛЯ ВСІХ.

та з чатом я біль менш розібрався, але була така проблема що не можу підключитися з другого компютера  а по локалкі все виходить...

26

Re: Сервер на java

Zolin_777 написав:

та з чатом я біль менш розібрався, але була така проблема що не можу підключитися з другого компютера  а по локалкі все виходить...

Це не проблема, це реальність  :)

Zolin_777 написав:

...а от як написати програму щоб спілкувалися дві реальні людини?...
...Користувач вище вас правильно сказав тільки як це зробити не знаю...
...і замість Т всталяти сокет? добре треба докладніше мені прочитати про arraylist...
...всеодно не пойму як відправляти смс щоб його отримували всі користувачі...
...А якщо використати InetAddress думаю він для цього і призначений...

???
Ну, якщо у Вас дійсно робочий код то і на зовнішньому IP він буде працювати (хіба що малі нюанси, якщо користувач буде через проксі, але то таке). Тому все, що вам потрібно замовити зовнішній IP.

Подякували: Zolin_7771

27

Re: Сервер на java

Спробуйте ще може Netty. Кілька хендлерів і чистий код без тредів, "while true" в вашому коді і т.д.

28

Re: Сервер на java

iovchynnikov написав:

Спробуйте ще може Netty. Кілька хендлерів і чистий код без тредів, "while true" в вашому коді і т.д.

Дякую та я хочу написати свій код, хай він буде як другі, але свій і з мінімумом загадкових методів, хоча почитаю про ваш варіант

29

Re: Сервер на java

Так де ж мені все таки взяти ip під сервер? а то тільки по локалкі якось не дуже цікаво....

30

Re: Сервер на java

Zolin_777 написав:
iovchynnikov написав:

Спробуйте ще може Netty. Кілька хендлерів і чистий код без тредів, "while true" в вашому коді і т.д.

Дякую та я хочу написати свій код, хай він буде як другі, але свій і з мінімумом загадкових методів, хоча почитаю про ваш варіант

Та, можливо. Думаю кожен програміст має написати кліент-сервер на plain sockets щоб потім легко орієнтуватися в вищих абстракціях.
Хоч би як, на практиці великі додатки на сокетах залишился лише в legacy коді, так що якщо вас цікавить цей напрямок + Java - Netty Ваш друг :)

Подякували: Zolin_777, leofun012

31

Re: Сервер на java

iovchynnikov написав:
Zolin_777 написав:
iovchynnikov написав:

Спробуйте ще може Netty. Кілька хендлерів і чистий код без тредів, "while true" в вашому коді і т.д.

Дякую та я хочу написати свій код, хай він буде як другі, але свій і з мінімумом загадкових методів, хоча почитаю про ваш варіант

Та, можливо. Думаю кожен програміст має написати кліент-сервер на plain sockets щоб потім легко орієнтуватися в вищих абстракціях.
Хоч би як, на практиці великі додатки на сокетах залишился лише в legacy коді, так що якщо вас цікавить цей напрямок + Java - Netty Ваш друг :)

Саме так, та і я створив цю тему щоб мені допомогли з моїм кодом і проблемою а не дали все готове  :) для чого тоді програмувати як що тільки код готовий копіювати і вставляти. Цікаву тему ви про Netty мені підкинули

32

Re: Сервер на java

Питання осталось не закритим про те як все таки зробити консольний чат щоб міг підключитися другий користувач... не по локалкі

33

Re: Сервер на java

Zolin_777 написав:

Питання осталось не закритим про те як все таки зробити консольний чат щоб міг підключитися другий користувач... не по локалкі

Див. вище: якщо провайдер не надає статичного зовнішнього айпішника, то сервер у локалці клієнти за межами локалки не побачать. Тобто, треба або домовлятися з провайдером (якщо це можливо), або орендувати сервер у якогось хостинг-провайдера. Або, можливо, й зовсім змінити архітектуру своєї програми, щоб використовувати UDP (де можливий безпосередній обмін повідомленнями між машинами без зовнішніх ІР-адрес).

34

Re: Сервер на java

P.Y. написав:
Zolin_777 написав:

Питання осталось не закритим про те як все таки зробити консольний чат щоб міг підключитися другий користувач... не по локалкі

Див. вище: якщо провайдер не надає статичного зовнішнього айпішника, то сервер у локалці клієнти за межами локалки не побачать. Тобто, треба або домовлятися з провайдером (якщо це можливо), або орендувати сервер у якогось хостинг-провайдера. Або, можливо, й зовсім змінити архітектуру своєї програми, щоб використовувати UDP (де можливий безпосередній обмін повідомленнями між машинами без зовнішніх ІР-адрес).

Уже питав київстар такого не робить, а безкоштовно можна якось орендувати, хоча, що за питання, орендувати і безкоштовно взагалі не клеїться.... а якщо я хостинг куплю і там же повинні дати ІП мені чи ні...доречі якщо через inetaddress ставити ip не локальний а той що визначає 2ip.ua то всеодно не працює пише що не можна приєднати до цієї адреси..

35

Re: Сервер на java

Zolin_777 написав:
P.Y. написав:
Zolin_777 написав:

Питання осталось не закритим про те як все таки зробити консольний чат щоб міг підключитися другий користувач... не по локалкі

Див. вище: якщо провайдер не надає статичного зовнішнього айпішника, то сервер у локалці клієнти за межами локалки не побачать. Тобто, треба або домовлятися з провайдером (якщо це можливо), або орендувати сервер у якогось хостинг-провайдера. Або, можливо, й зовсім змінити архітектуру своєї програми, щоб використовувати UDP (де можливий безпосередній обмін повідомленнями між машинами без зовнішніх ІР-адрес).

Уже питав київстар такого не робить, а безкоштовно можна якось орендувати, хоча, що за питання, орендувати і безкоштовно взагалі не клеїться.... а якщо я хостинг куплю і там же повинні дати ІП мені чи ні...доречі якщо через inetaddress ставити ip не локальний а той що визначає 2ip.ua то всеодно не працює пише що не можна приєднати до цієї адреси..

Можливо не на 100% відповідає темі саме "консольного чату" але дуже просто можливо зробити за допомоги Spring Web Sockets, єдине що, це буде веб-додаток. Як спілкуватись всім в ньому? Треба десь захоститись і все. Так доведеться трохи грошей виласти за якийсь впс, но опеншифті можна покласти проект безкоштовно, або на хєроку, але там на безкоштовних буде тяжко працювати, бо вони засинають якщо неактивні, а просинаються досить довго

Подякували: Zolin_777, leofun012