1

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

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

2

Re: Сервер на java

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

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

3

Re: Сервер на java

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

4

Re: Сервер на java

FakiNyan написав:

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

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

5

Re: Сервер на java

koala написав:

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

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

6

Re: Сервер на java

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

7

Re: Сервер на java

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

8

Re: Сервер на java

FakiNyan написав:

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

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

9

Re: Сервер на java

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

10

Re: Сервер на java

FakiNyan написав:

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

Тобто сокет?

11

Re: Сервер на java

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

//псевдокід
Socket mySocket = new Socket();
ArrayList<Socket> clients = new ArrayList<Socket>();
clients.add(mySocket);
Подякували: 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

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

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

19

Re: Сервер на java

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

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

20

Re: Сервер на java

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

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

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

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

Подякували: koala, Zolin_7772