Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
1 / 1 / 2
Регистрация: 30.09.2013
Сообщений: 89

Socket java

24.03.2016, 00:10. Показов 1310. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Есть два компа. Создаю клиента через Socket и сервер ServerSocket. Если в Socket ввожу адрес 127.0.0.1, то все нормально работает. Если запускаю на разных компах, то почему-то клиент не хочет конектиться к серверу. Вылазит ConnectException. Компы менял местами. Вводил в Socket и внешний и внутренний IP компьютера-сервера, не сработало. На обеих антивирусы по отрубал, тоже ничего не вышло. Что не так, подскажите пожалуйста.

Сервер


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.io.*;
import java.net.*;
 
public class ClassNetDemo {
 
    public static void main(String[] args) throws Exception {
        ServerSocket serSoc = new ServerSocket(6666);
        System.out.println("Ожидаем соединения клиента.....");
        Socket sck = serSoc.accept();
        System.out.println("Got a client :)");
        System.out.println();
        InputStream is = sck.getInputStream();
        DataInputStream data = new DataInputStream(is);
 
        System.out.println(data.readUTF());
        serSoc.close();
        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
import java.io.DataOutputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
 
public class InetAddressTest {
 
    public static void main(String[] args) throws Exception  {
        InetAddress adrs = InetAddress.getByName("127.0.0.1");
        System.out.println("Создал InetAddress для сервера " + adrs);
        System.out.println();
        Socket sct = new Socket(adrs, 6666);
        System.out.println("Спим 3 секунды!");
        Thread.sleep(3000);
        OutputStream ops = sct.getOutputStream();
        DataOutputStream out = new DataOutputStream(ops);
        String s = "Строка для сервера!";
        out.writeUTF(s);
        out.flush();
        out.close();
 
    }
 
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.03.2016, 00:10
Ответы с готовыми решениями:

Java Socket Chat + GUI трабл с сообщениями
Господа нужна консультация. Решил написать простенький сокет чат, изучил литературу нашел несколько примеров и скомпоновал самые удачные...

Java socket StreamCorruptedException
Доброго времени суток! Товарищи, уже какой день не могу понять в чем проблема. Часто появляются разные ошибки. В особенности...

Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ?
Какую версию Java поддерживает .Net Java# И какую VS6.0 Java++ ? Ответье, плиз, новичку, по MSDN я не понятно, это исключительно...

7
 Аватар для Левиафам
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
24.03.2016, 09:32
Цитата Сообщение от dispetch Посмотреть сообщение
Компы менял местами
не понял смысл фразы
Цитата Сообщение от dispetch Посмотреть сообщение
Вводил в Socket и внешний и внутренний IP компьютера-сервера
не нужно никаких внешних/внутренних.....просто создай внутреннюю локальную сеть, и выдели ip каждому компутеру, а потом указывай их в зависимости от того к кому подключиться нужно
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
24.03.2016, 11:28
я бы для теста на компьютере с сервером выключил firewall
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
24.03.2016, 12:00
попробуй telnet'ом достучаться до сервера с другого компа, либо просто пингануть этот IP.
0
1 / 1 / 2
Регистрация: 30.09.2013
Сообщений: 89
24.03.2016, 12:34  [ТС]
Цитата Сообщение от Левиафам Посмотреть сообщение
не понял смысл фразы
в смысле на обеих запускал и сервера и клиента.

Цитата Сообщение от Левиафам Посмотреть сообщение
не нужно никаких внешних/внутренних.....просто создай внутреннюю локальную сеть, и выдели ip каждому компутеру, а потом указывай их в зависимости от того к кому подключиться нужно
А без локальной сети не получится? Если хочу например сделать обычный чат между двумя компами. Один комп работает через ADSL модем, другой через мобильный интернет.

Цитата Сообщение от Паблито Посмотреть сообщение
я бы для теста на компьютере с сервером выключил firewall
Да вроде вырубал. У меня обычного фаервола нету, только который в NOD32. Отрубал его на обеих компьютерах, не помогло(((...

Добавлено через 33 минуты
Цитата Сообщение от Kastaneda Посмотреть сообщение
попробуй telnet'ом достучаться до сервера с другого компа, либо просто пингануть этот IP.
через telnet тоже ничего не выходит. Не удается подключиться. Сделал ping, то вылазит 100% потерь.

А то что винда 7 не активирована, это может влиять?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
24.03.2016, 13:03
если там не локальная сеть, а что-то через модем выходит то ничего не получится - надо пробрасывать порты и все такое, и все равно не заработает потом что провайдеры любят назначать серые адреса
0
 Аватар для Левиафам
38 / 33 / 12
Регистрация: 31.05.2012
Сообщений: 586
24.03.2016, 13:19
Лучший ответ Сообщение было отмечено dispetch как решение

Решение

Цитата Сообщение от dispetch Посмотреть сообщение
Один комп работает через ADSL модем, другой через мобильный интернет.
тебе нужно изучить основы сетей, а потом уже работать с ними на уровне языка программирования.

Ты понимаешь что за белый айпишник нужно выплачивать дополнительную денежку . Тебе провайдер скорее всего не выделяет белый. У тебя твой айпи входит во внутреннюю сеть созданным DHCP. Хочешь чтобы у тебя был чат??Тогда связывайся с провайдером и пусть тебе выделит беленький......... Можно вообще уйти от этого всего (ну если так сильно хочется чтобы взаимодействовали 2 компа) то придется локалку сделать между компами и присвоить айпи

Добавлено через 3 минуты
Цитата Сообщение от Паблито Посмотреть сообщение
любят назначать серые адреса
а на каждого айпишниками не запасешься, число ограничено
1
7 / 7 / 3
Регистрация: 19.08.2015
Сообщений: 76
24.03.2016, 15:47
Есть такая штука, как внешний айпи адрес, или белый, или анонсированный, или выделенный. Только к компам с таким адресом возможно подключение напрямую, без всяких эмуляторов локалки, вроде Хамачи. Некоторые провайдеры предоставляют его бесплатно, но нужно самому его запросить. Наличие возможности бесплатного подключения может быть указано на сайте, в моём случае тут http://nwlk.ru/bonus-free.html . После получения выделенного адреса останется пробросить порт, если используется роутер, и к вам теперь могут подключаться напрямую.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.03.2016, 15:47
Помогаю со студенческими работами здесь

Error #: 306 : constructor Socket(java.net.SocketImpl) has protected access in class java.net.Socket at line 282, column 32
привет , как сделать чтобы это компилилось а не выдавало ошибок sock = new Socket(cServerIp, nPort, cLocalIp, 0); Error #: 306 :...

Socket Android Client and Java Socket Server
Доброго времени суток.Пытаюсь сделать простое клиент-серверное приложение. Клиент - приложение на Android устройстве. Сервер - Приложение...

Socket Java
Доброго времени суток. Пишу клиент-серверное приложение (на сокетах) "чат по парам" под андроид, сервер у меня написан на java. Суть...

Невозможно создать Socket: Socket sock = new Socket(someHostString,somePortInt);
Народ! Помогите пожалуйста. Вся красота губится на exception что выскакивает в момент создания сокета: Socket sock = new...

Socket на андроид, Kotlin (Java)
Добрый день. Проблема в том, что не происходит отправка данных на сервер, ошибок нет, права на доступ к вай-фай и интернету даны. ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru