0

我正在尝试创建一个 SOAP 客户端。但不断收到此错误。任何想法为什么?我尝试更改IP但仍然相同的错误。

在此处输入图像描述

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);
4

2 回答 2

3

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

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

于 2016-06-21T15:41:46.917 回答
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 这样的地址

于 2016-06-26T13:16:29.950 回答