java - 服务器套接字不接受客户端

标签 java sockets

我正在学习java中的套接字。我能够将客户端套接字连接到在线服务器,但我可以将它们连接到我自己的服务器套接字!

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

class Blargh2 {
    public static void main(String[] args) {
        Socket client = null;
        ServerSocket server = null;
        System.out.println("Line one reacehd!");
        try {
            server = new ServerSocket(4445);
        } catch (Exception e) {
            System.out.println("Error:" + e.getMessage());
        }
        System.out.println("Line two reacehd!");
        try {
            client = server.accept();
        } catch (IOException e) {
            System.out.println("Accept failed: 4444");
            System.exit(-1);
        }

        System.out.println("Line three reacehd!");
        try {
            server.close();
            client.close();
        } catch (IOException e) {
            System.out.println("Accept failed: 4444");
            System.exit(-1);
        }
    }
}

程序到达第一行和第二行,但从未到达第三行! 谁能帮我解决这个问题吗?防火墙也允许此连接...

最佳答案

它永远不会到达第 3 行,因为您需要一个远程 TCP 套接字(尽管它可以是本地的,用于测试)来连接到端口 4445 上的套接字。您接受服务器上的端点套接字,这些套接字用于与远程通信客户。这里实际上没有客户端,因此它无限期地等待,或者直到 accept() 调用超时。

关于java - 服务器套接字不接受客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7757443/

相关文章:

python - 使用 python 创建用于发送 TCP 和 UDP 数据包的客户端和服务器程序

java - 具有独立环境的 AWS API 网关 - 生产和登台

java - 使用 ArrayList 手动访问 ArrayList

Java:如何在一维图中找到洞?

java - 第一个应用程序(developer.android.com)错误,什么问题?

c - 带 c 的 socket 和 fork

java - Java 中对 Long 变量的 XOR 操作和 BitCount 返回 java.lang.NumberFormatException

node.js - Socket.io 无法加载资源客户端,可在本地主机上运行

linux - 服务套接字会在核心转储之前或之后关闭吗?

sockets - 将控制权从一个 gen_fsm 传递到另一个