多播错误:未找到多播地址

时间:2016-06-21 12:36:04

标签: java soap soap-client multicast multicastsocket

我正在尝试创建一个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(main)

    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 个答案:

答案 0 :(得分:3)

传递给joinGroup的IP地址不是有效的多播地址。

有效的IPv4多播地址范围为224.0.0.1 - 239.255.255.255。

答案 1 :(得分:1)

正如dbush所说,122.57.1​​53.213不是多播地址。

224.0.0.1是一个众所周知的地址

保留

224.0.0.69至224.0.0.100

http://www.iana.org/assignments/multicast-addresses/multicast-addresses.xhtml

尝试使用类似239.192.0.1的地址

相关问题