Исключение выдает, когда я пытаюсь сделать сокет 255.255.255.255 - PullRequest
2 голосов
/ 04 июля 2011

Я впервые программирую сеть на Java. Я хочу использовать его в небольшой сети. Я искал способ отправки для какой-либо широковещательной передачи на все узлы во всей сети. Чтобы сообщить им о моем существовании. Кто-то сказал мне отправлять пакеты данных на номер 255.255.255.255, чтобы любой в сети получал их.

Итак, я написал этот кусок кода:

try{
    Socket socket= new Socket("255.255.255.255", 3550);
}catch(Exception e){
    System.out.println("oops! " + e.getMessage());
}

Но, к сожалению, он печатает:

oops! Permission denied 

Когда я меняю «255.255.255.255» на «192.168.1.3», который является IP-адресом моего помощника, он работает нормально. Кроме того, когда я изменяю «255.255.255.255» на «192.168.1.255», который согласно ifconfig является моим широковещательным адресом, я получаю исключение с тем же сообщением.

Я в сети ad-hoc.
Моя ОС MAC OS X 10.6
Мой приятель в Windows Vista Home Premium с пакетом обновления 1.

Пожалуйста, сделай это проще, я новичок :)

Заранее спасибо.

Ответы [ 3 ]

5 голосов
/ 04 июля 2011

Socket() создает потоковый ( TCP ) сокет. Вы не можете транслировать поток. Вам нужен сокет дейтаграммы ( UDP ), поэтому вы должны использовать более специализированный класс <a href="http://download.oracle.com/javase/1.4.2/docs/api/java/net/DatagramSocket.html" rel="noreferrer">DatagramSocket()</a>.

1 голос
/ 05 июля 2011

Попытка подключения a TCP Сокет к несуществующему IP-адресу 255.255.255.255 (a) невозможен и (b) ничего не отправляет никуда. Это не то же самое, что отправка UDP-дейтаграммы через DatagramSocket с целевым адресом из 255.255.255.255, что что вам посоветовали сделать.

1 голос
/ 04 июля 2011

Я считаю, что сокеты Java TCP поддерживают только одноадресную связь, где вы хотите использовать дейтаграммы.

http://download.oracle.com/javase/1.4.2/docs/api/java/net/DatagramSocket.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...