【问题标题】:Java TCP Socket Connection RefusedJava TCP 套接字连接被拒绝
【发布时间】:2015-12-03 01:00:22
【问题描述】:

我在这里有一些代码可以连接到服务器,但我收到错误 java.net.ConnectException: Connection Refused。

我尝试在命令行上使用ping,我收到了数据包,所以我知道它正在工作。

我还尝试使用telnet 连接到我的 IP 地址,它给了我同样的连接被拒绝错误。我的代码有问题吗?我不确定为什么我的连接被拒绝。

客户:

public class InstantMessagingClient 
{
    private Socket socket;

    public InstantMessagingClient(String serverName, int port)
    {

        new Thread() {
            public void run()
            {
                try
                {
                    System.out.println("Connecting to " + serverName + " and port: " + port);
                    //socket.setSoTimeout(10000);
                    socket = new Socket(serverName, port);
                    System.out.println("Client: connected to server at address: " + socket.getLocalAddress() + " and port: " + socket.getPort());
                }
                catch(Exception e)
                {
                    System.out.println(e.toString());
                }

            }
        }.start();
    }
}

服务器:

    public class InstantMessagingServer 
{
    private int port;
    private Socket clientSocket;
    private ServerSocket serverSocket;

    public InstantMessagingServer(int port)
    {
        try
        {
            this.port = port;
            serverSocket = new ServerSocket(port);
            serverSocket.setSoTimeout(10000);
            System.out.println("Server: Connected to port");
            new Thread() 
            {
                public void run()
                {
                    while(true)
                    {
                        try
                        {
                            System.out.println("Server: Waiting for port " + serverSocket.getLocalPort());
                            System.out.println(serverSocket.getLocalSocketAddress());
                            clientSocket = serverSocket.accept();
                            System.out.println("Server: Just connected to " + clientSocket.getRemoteSocketAddress());

                        }
                        catch(Exception e)
                        {
                            System.out.println(e.toString());
                            break;
                        }
                    }
                }
            }.start();
        }
        catch(Exception e)
        {
            System.out.println(e.toString());
        }
    }

}

主要:

public void main()
{
InstantMessagingServer server = new InstantMessagingServer(18638);
InstantMessagingClient client = new InstantMessagingClient("(My IP Address)", 18638);
}

【问题讨论】:

    标签: java sockets networking tcp


    【解决方案1】:

    我收到错误 java.net.ConnectException: Connection Refused。

    这只有一个意思。在您尝试连接的 IP:port 上没有任何东西在监听。

    我尝试在命令行上使用 ping 并收到数据包,所以我知道它正在工作。

    您知道 主机 正在工作。不能证明有关您尝试连接的端口或服务的任何信息。

    我还尝试使用 telnet 连接到我的 IP 地址,但它给了我同样的连接被拒绝错误。

    出于同样的原因。

    我的代码有问题吗?

    IP:port 错误或者服务器根本没有启动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-08
      • 2015-03-24
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 1970-01-01
      • 2016-05-08
      • 1970-01-01
      相关资源
      最近更新 更多