1

Тема: Сервер на java

Добрий день, хочу написати сервер на цій мові щоб з кимось поговорити через консоль (просто для цікавості). У мене є загальне представлення про серверсокет і сокет, можу навіть писати серверну програму і клієнтську з якої можна щось писати і в залежності від питання сервер дає ту чи іншу відповідь, а от як написати програму щоб спілкувалися дві реальні людини? хоча б намікніть як це зробити в серверній частині?

Балаканина нічого не варта. Покажіть мені код.

2

Re: Сервер на java

при підключенні клієнта, додаєте його сокет в список, коли якийсь клієнт відправляє дані, і вони приходять на сервер, то проходитесь по списку,і відправляєте кожному клієнту ті дані (тільки ігноруйте клієнта,  від котрого ті дані надійшли)

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...
Подякували: Zolin_7771

3

Re: Сервер на java

Я так розумію, єдина проблема - це як зробити введення і відсилання асинхронними? Чи що сервер і клієнт мають бути на обох сторонах одночасно?

4

Re: Сервер на java

FakiNyan написав:

при підключенні клієнта, додаєте його сокет в список, коли якийсь клієнт відправляє дані, і вони приходять на сервер, то проходитесь по списку,і відправляєте кожному клієнту ті дані (тільки ігноруйте клієнта,  від котрого ті дані надійшли)

А як це зробити не підскажите?

Балаканина нічого не варта. Покажіть мені код.

5

Re: Сервер на java

koala написав:

Я так розумію, єдина проблема - це як зробити введення і відсилання асинхронними? Чи що сервер і клієнт мають бути на обох сторонах одночасно?

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

Балаканина нічого не варта. Покажіть мені код.

6

Re: Сервер на java

Може можна створити Срінговий масив і туда записувати сокети?

Балаканина нічого не варта. Покажіть мені код.

7

Re: Сервер на java

Срінговий?  :D
в java є структура даних ArrayList<T>, її і користуйте

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...

8

Re: Сервер на java

FakiNyan написав:

Срінговий?  :D
в java є структура даних ArrayList<T>, її і користуйте

ахахах та то спішив просто...
і замість Т всталяти сокет? добре треба докладніше мені прочитати про arraylist, дякую)

Балаканина нічого не варта. Покажіть мені код.

9

Re: Сервер на java

замість T - тип даних, котрий буде міститись в ArrayList

All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...

10

Re: Сервер на java

FakiNyan написав:

замість T - тип даних, котрий буде міститись в ArrayList

Тобто сокет?

Балаканина нічого не варта. Покажіть мені код.

11

Re: Сервер на java

ага, тільки не змінну, а сам клас туди суйте, як ото

//псевдокід
Socket mySocket = new Socket();
ArrayList<Socket> clients = new ArrayList<Socket>();
clients.add(mySocket);
All you want is a dingle,
What you envy's a schwang,
A thing through which you can tinkle,
Or play with, or simply let hang...
Подякували: Zolin_7771

12

Re: Сервер на java

FakiNyan написав:

ага, тільки не змінну, а сам клас туди суйте, як ото

//псевдокід
Socket mySocket = new Socket();
ArrayList<Socket> clients = new ArrayList<Socket>();
clients.add(mySocket);

ого, по моєму я зрозумів, дякую ввечері буду пробувати  :)

Балаканина нічого не варта. Покажіть мені код.

13

Re: Сервер на java

всеодно не пойму як відправляти смс щоб його отримували всі користувачі, я відправляю це так out.println(a); де аут у мене поток виводу а а це змінна з привітання

Балаканина нічого не варта. Покажіть мені код.

14

Re: Сервер на java

У циклі, звісно. В кожен сокет.
Можна, звичайно, розсилати пакети одночасно по купі адрес, але це потребуватиме кращих знань мережі. А для простого чату явно вистачить простого циклу.

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

15

Re: Сервер на java

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

Балаканина нічого не варта. Покажіть мені код.

16

Re: Сервер на java

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

17

Re: Сервер на java

koala написав:

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

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

Балаканина нічого не варта. Покажіть мені код.

18

Re: Сервер на java

числа а не цихри спитав пан Коала

Говорила баба діду: «Я поїду к Білодіду, Ізучу двомовну мову І вернусь обратно знову». А дід бабі: «Не *изди, К Білодіду нєт їзди, — Туди не ходять поїзди»
Подякували: koala1

19

Re: Сервер на java

Простенький чат

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

20

Re: Сервер на java

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

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

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

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

py -3 -m pip install git+https://github.com/snoack/python-goto
Подякували: koala, Zolin_7772