2016-06-21 11 views
0

Я пытаюсь создать клиент SOAP. но продолжайте получать эту ошибку. Любые идеи почему? Я попытался изменить IP-адрес, но все равно такую ​​же ошибку.Ошибка многоадресной рассылки: многоадресный адрес не найден

enter image description here

MulticastSocket.Java

public void joinGroup(InetAddress mcastaddr) throws IOException { 
    if (isClosed()) { 
     throw new SocketException("Socket is closed"); 
    } 

    checkAddress(mcastaddr, "joinGroup"); 
    SecurityManager security = System.getSecurityManager(); 
    if (security != null) { 
     security.checkMulticast(mcastaddr); 
    } 

    if (!mcastaddr.isMulticastAddress()) { 
     throw new SocketException("Not a multicast address"); 
    } 

SOAPClient.java

public class MultiThread extends Thread implements ActionListener, KeyListener { 
    MulticastSocket socket; 
    DatagramPacket packet; 

    public MultiThread() throws IOException { 
     socket = new MulticastSocket(4446); 
     InetAddress group = InetAddress.getByName("122.57.153.213"); 
     socket.joinGroup(group); 
    } 

SOAPCLient.java @ линия 80

public SoapClient() throws IOException, RemoteException, NotBoundException, NamingException {  
    setBackground(new Color(0, 153, 76));//three green lines on gui 
    JPanel rightSideLayout = new JPanel();//active clients 
    rightSideLayout.setBackground(Color.darkGray);  
    JPanel bottomPanel = new JPanel(new BorderLayout());//contains typing field and send button 

    JLabel label = new JLabel(); 
    Font font = label.getFont(); 
    Map attributes = font.getAttributes(); 
    attributes.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); 
    font = Font.getFont(attributes); 
    label.setFont(font); 
    label.setText("\tBhoo Online"); 
    label.setForeground(Color.WHITE); 

    setLayout(new BorderLayout(10, 10)); 

    sendButton = new JButton("Send"); 
    sendButton.setPreferredSize(new Dimension(RIGHT_PANEL_WIDTH, 20)); 
    line 80 sendButton.addActionListener(new MultiThread()); 
    mainField = new JTextArea(); 

SOAPClient.java (основной)

public static void main(String[] args) throws IOException, InterruptedException, RemoteException, NotBoundException, NamingException { 
    JFrame frame = new JFrame("BhooChat Client"); 
    SoapClient bhooChat = new SoapClient(); 
    frame.add(bhooChat); 

ответ

2

IP-адрес передается в joinGroup не является допустимым групповой адрес.

Действительные многоадресные IPv4-адреса находятся в диапазоне 224.0.0.1 - 239.255.255.255.

+0

Спасибо за это, я попытался меняя его несколько раз, т.е. 224.0.0.1 и 224.0.0.100, и тогда он говорит, что не может назначить адрес? это было бы потому, что я использую Mac? @dbush – kiwilifter

+0

@kiwilifter Возможно, интерфейс, к которому он пытается подключиться, не позволяет многоадресную рассылку. Перед вызовом 'joinGroup' сначала вызовите' setInterface' и передайте ему IP-адрес интерфейса, к которому вы хотите присоединиться. Кроме того, запустите 'ifconfig -a' в командной строке, чтобы увидеть, какие интерфейсы поддерживают многоадресную рассылку, а какие нет. – dbush