Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/12: Рейтинг темы: голосов - 12, средняя оценка - 4.58
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 4

Ошибка подключения клиента к серверу

06.01.2013, 16:22. Показов 2685. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
На одном компе соединение устанавливается и все работает,но на разных, клиент не подключается и после некоторого ожидания уходит в catch.

В чем могут быть проблемы?



Код Сервера
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
public class Server {
     public static void main(String[] args) {
         try
         {
             System.out.println("Server is starting");
             int port=4444;
             ServerSocket server = new ServerSocket(port);
             Socket socket = server.accept();
             if (socket.isConnected())
             {
                 System.out.println("Server connected");
             }   
             BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
             PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
             while(true)
             {
                 String command= reader.readLine();
                 System.out.println("Client wrote: "+ command);
                 if(command.equals("exit"))
                 {
                     System.out.println("Server exit");
                     break;
                 }  
                 else
                 {
                     writer.write("Ok" + "\n");
                     writer.flush();
                 }
             }
             writer.close();
             reader.close();
             socket.close();
             
         }
 
         catch(IOException e) {
             System.out.println("Ошибка");
         }
     }
}

Код Клиента
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public class Client {
     public static void main(String[] args) {
         try
         {
             Scanner scan = new Scanner(System.in);
             System.out.println("Client is starting");
             int port=4444;
             String host="93.240.140.56";
             Socket socket = new Socket();
             InetSocketAddress addr = new InetSocketAddress(host,port);
             socket.connect(addr);
             if (socket.isConnected())
             {
                 System.out.println("Client connected");
             }   
             BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
             PrintWriter writer = new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));
             
             while(true)
             {        
                 String command = scan.nextLine();
                 writer.write(command +"\n");
                 writer.flush();    
                 if(command.equals("exit"))
                 {
                     System.out.println("Client exit");
                     break;
                 }
                 else
                 {
                     String answer = reader.readLine();
                     System.out.println("Server write: " + answer);
                 }                 
             }
             writer.close();
             reader.close();
             socket.close();
         }
         catch(IOException e) {
             System.out.println("Ошибка");
         }
     }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.01.2013, 16:22
Ответы с готовыми решениями:

Unet, Событие - подключения клиента к серверу
День добрый, никак не могу разобраться почему не вызывается событие подключения клиента к серверу, подключение происходит, появляется игрок...

Реализация клиента для подключения к серверу на WebSocket
Добрый день. Есть сервер разработанный на c++. Сервер использует подлинный сертификат и работает в режиме wss (https). Написанный мной...

Настройка нового клиента для подключения к серверу RDP (S 2008)
Здравствуйте. Возможно такие вопросы уже задавали, если да и там есть ответ(ы), то прошу меня направить туда. Имеется пекарня, на него...

11
 Аватар для KofeMNE
7 / 7 / 1
Регистрация: 27.08.2009
Сообщений: 99
09.01.2013, 12:06
Вероятнее всего у вас в помещении стоит WI-FI роутер, к которому подключен сервер и на роутере закрыт порт 4444. Следовательно клиент не может подключиться к серверу по порту 4444.

Настроить перенаправление портов можно в админке роутера.

0
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 4
09.01.2013, 20:39  [ТС]
Нет, клиент пытается подключиться к серверу не в локальной сети,такое возможно?
0
 Аватар для KofeMNE
7 / 7 / 1
Регистрация: 27.08.2009
Сообщений: 99
10.01.2013, 15:01
Еще может быть проблема в том, что ваш IP не является белым.

Дело в том, что клиент не может обнаружить сервер. Отсюда все проблемы. Когда IP сервера будет пинговаться с клиента, соединение сразу заработает.
0
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
10.01.2013, 15:27
Извините если не по теме.

Такой вопрос. Посмотрите на первый пост. Первый блок кода. Строчка 27.
writer.flush; -- что это значит. Я читал, что это какая-то отчистка.
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
10.01.2013, 16:12
Цитата Сообщение от waip Посмотреть сообщение
Извините если не по теме.

Такой вопрос. Посмотрите на первый пост. Первый блок кода. Строчка 27.
writer.flush; -- что это значит. Я читал, что это какая-то отчистка.
http://docs.oracle.com/javase/... tml#flush()

Посмотрите значение слова flush в словаре.

P.S. В данном случае это принудительная запись информации из буферов в outputStream сокета. Грубая, но точная аналогия - навалили кучу, потом смыли. Вот когда смыли, только тогда оно всё потоком и ушло по назначению.
1
 Аватар для waip
7 / 7 / 1
Регистрация: 27.05.2011
Сообщений: 297
10.01.2013, 16:17
Цитата Сообщение от Skipy Посмотреть сообщение
Посмотрите значение слова flush в словаре.
flush ()
Очищает поток.


Цитата Сообщение от Skipy Посмотреть сообщение
P.S. В данном случае это принудительная запись информации из буферов в outputStream сокета. Грубая, но точная аналогия - навалили кучу, потом смыли. Вот когда смыли, только тогда оно всё потоком и ушло по назначению.
Т.е по началу это всё работает "локально" в приделах какой-то области, верно? А потом после отчистки происходит отправка на сервлет, верно?
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
11.01.2013, 11:00
Цитата Сообщение от waip Посмотреть сообщение
Т.е по началу это всё работает "локально" в приделах какой-то области, верно? А потом после отчистки происходит отправка на сервлет, верно?
До заполнения буфера - да, локально. Если при записи заполняется буфер, то его содержимое скидывается в приемник. Если не заполнился - будет ждать ручного "слива".
1
0 / 0 / 0
Регистрация: 06.01.2013
Сообщений: 4
11.01.2013, 16:52  [ТС]
Цитата Сообщение от KofeMNE Посмотреть сообщение
Еще может быть проблема в том, что ваш IP не является белым.

Дело в том, что клиент не может обнаружить сервер. Отсюда все проблемы. Когда IP сервера будет пинговаться с клиента, соединение сразу заработает.
Я не разбираюсь в IP,но мой знакомый пытался пинговать мой IP адрес на своем компе,и да это возможно,но идет какой-то процент потери пакетов(как я поняла не существенный).
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
12.01.2013, 15:05
Цитата Сообщение от Skipy Посмотреть сообщение
Грубая, но точная аналогия - навалили кучу, потом смыли.
- давненько на форуме не было так весело, Женя жги ещё
0
14.01.2013, 11:09

Не по теме:

Я не уточнял, кучу чего навалили. Может и снега. Каждый всё понимает в меру своей испорченности.

0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
15.01.2013, 12:20
Цитата Сообщение от Skipy Посмотреть сообщение
Я не уточнял, кучу чего навалили. Может и снега. Каждый всё понимает в меру своей испорченности.

Не по теме:

ага, ага ;) кучу снега навалили - смыли :D

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.01.2013, 12:20
Помогаю со студенческими работами здесь

Ошибка при подключении клиента к серверу
Пытаюсь написать приложения клиент - сервер , делал по примеру мснс , но видимо где-то напартачил и при вызове метода коннект подключение...

Ошибка при сериализации от клиента серверу
Передаём данные между сервером и клиентом, при первой сериализации от клиента к серверу - всё гладко, а обратно выбивает ошибку! Самое...

Ошибка подключения к серверу
Скажите пожалуйста как убрать эту ошибку? ЗАГОЛОВОК: Соединение с сервером ------------------------------ Не удается подключиться...

Ошибка при подключении шестого клиента к серверу
5 клиентов подключаются как положено, а при подключении 6-ого выскакивает следующая ошибка: Что сделано не так? Где ошибка?:( Вот...

Ошибка подключения к серверу 10060
порт 8080 при подключении клиента к серверу с лок. комп. все работает, адрес подключения 127.0.0.1, при подключении клиента к серверу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru