java.net.SocketException:出现拒绝权限

java.net.SocketException:出现拒绝权限,java,swing,sockets,Java,Swing,Sockets,我尝试运行一个代码,使用java swing库创建GUI,以向localhost服务器发送消息。GUI包含一个文本字段以键入消息,以及一个按钮以将消息发送到服务器。服务器代码包含在另一个类中 当我尝试运行代码时,控制台中会显示一个套接字异常,如下所示: java.net.SocketException:权限被拒绝:连接在 java.net.DualStackPlainSocketImpl.connect0(本机方法)位于 java.net.DualStackPlainSocketImpl.soc

我尝试运行一个代码,使用java swing库创建GUI,以向localhost服务器发送消息。GUI包含一个文本字段以键入消息,以及一个按钮以将消息发送到服务器。服务器代码包含在另一个类中

当我尝试运行代码时,控制台中会显示一个套接字异常,如下所示:

java.net.SocketException:权限被拒绝:连接在 java.net.DualStackPlainSocketImpl.connect0(本机方法)位于 java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) 在 java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) 在 java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) 在 java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)

请帮我连接到服务器

我在这里附上GUI和服务器的代码

用于创建GUI和建立与服务器的连接的类:

    package org.myorg;
    import javax.swing.*;
    import java.awt.BorderLayout;
    import java.awt.event.*;
    import java.*io.IOException;
    import java.io.PrintWriter;
    import java.net.*;
    import org.myorg.MessageServer;

    public class SendMessage {
    PrintWriter writer;
    Socket sock;
    JTextField text;

/*Creates GUI and adds SendButtonListener object to the button.
    Calls setUpNetworking() method*/

    public void go(){
    JFrame frame=new JFrame();
    JPanel panel=new JPanel();
    text=new JTextField("Message",15);
    JButton button=new JButton("Send");
    button.setSize(5,5);
    button.addActionListener(new SendButtonListener());
    panel.add(text);
    panel.add(button);
    frame.getContentPane().add(BorderLayout.CENTER,panel);
    frame.setSize(300,200);
    frame.setVisible(true);
    setUpNetworking();
    }

/*Listens to action event of clicking the 'send' button.
The message from the text field is written to writer object for sending it                                   
to server*/

    class SendButtonListener implements ActionListener{
    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    try{
    writer.println(text.getText());
    writer.flush();
    }catch(Exception ex){
        ex.printStackTrace();
    }
    text.setText("message");
    text.requestFocusInWindow();
    }
    }

/*Establishes socket connection to the server. Object of PrintWriter is     
created*/

    private void setUpNetworking(){
 try {
    sock=new Socket("127.0.0.1",50000);
    writer=new PrintWriter(sock.getOutputStream());
    } catch (UnknownHostException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }

 /*Main method*/

    public static void main(String[] args) {
    SendMessage sendMessage=new SendMessage();
    MessageServer server=new MessageServer();
    sendMessage.go();
    server.go();
    }
    }
服务器类

    package org.myorg;

    import java.io.*;
    import java.net.*;

    public class MessageServer {
    Socket sock;

 /*Accepts the socket connection and calls the read() method*/

    public void go(){
    try{
    @SuppressWarnings("resource")
    ServerSocket socket=new ServerSocket(50000);
    sock=socket.accept();
    read(sock);
    }catch(IOException e){
    e.printStackTrace();
    }
    }

/*Reads the message using InputStreamReader*/


    public void read(Socket sock){
    InputStreamReader stream;
    try {
    stream = new InputStreamReader(sock.getInputStream());
    BufferedReader reader=new BufferedReader(stream);
    System.out.println(reader.readLine());
    } catch (IOException e1) {
   // TODO Auto-generated catch block
   e1.printStackTrace();
   }
   }
   }

首先,您必须运行服务器

  public class MessageServer {
  Socket sock;
/*Accepts the socket connection and calls the read() method*/
public void go() {
    try {
        @SuppressWarnings("resource")
        ServerSocket socket = new ServerSocket(50000);
        sock = socket.accept();
        read(sock);
    } catch (IOException e) {
        e.printStackTrace();
    }
}
/*Reads the message using InputStreamReader*/
public void read(Socket sock) {
    InputStreamReader stream;
    try {
        stream = new InputStreamReader(sock.getInputStream());
        BufferedReader reader = new BufferedReader(stream);
        System.out.println(reader.readLine());
    } catch (IOException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
   }

public static void main(String[] args) {
    MessageServer server = new MessageServer();

    server.go();
}}
然后运行客户端“SendMessage.java”


API说,“底层协议中有错误,例如TCP错误。”您可能必须打开端口。这可能有助于缩小搜索范围。可能。请确保发布的代码具有合理且一致的代码块缩进方式。IDE通常有一个设置代码格式的快捷方式。您可以通过单击左侧的来接受这个答案。
 public static void main(String[] args) throws IOException {
  SendMessage sendMessage=new SendMessage();
  // MessageServer server=new MessageServer();
   sendMessage.go();
 // server.go();
  }