服务器监听多个端口 [Java]

2024-03-11

我试图弄清楚如何创建一个 java 程序,该程序可以侦听多个端口并根据客户端通话的端口执行不同的操作。

我已经看到并理解了基本的客户端-服务器程序:http://systembash.com/content/a-simple-java-tcp-server-and-tcp-client/ http://systembash.com/content/a-simple-java-tcp-server-and-tcp-client/

重申一下,我想创建相同的关系,但不是服务器仅侦听一个端口并在收到输入时执行一项操作,而是希望它侦听多个端口并取决于客户端连接并向哪个端口发送数据,执行不同的操作。

我希望将来让每个端口接受 GET 和 PUT 命令,但现在我只是想弄清楚如何设置能够侦听多个端口的服务器的基本结构。我尝试过谷歌搜索,但似乎找不到太多信息,因此非常感谢您的帮助。

提前致谢。 -安东尼


你提到的教程是very基本的。如果不使用线程,你就无法编写任何合理的服务器。为了拥有两个服务器套接字,您必须为每个端口生成一个新线程,如下所示(伪代码):

new Thread() {
    public void run() {
        ServerSocket server = new ServerSocket(6788);
        while(true) {
            Socket client1 = server.accept();
            //handle client1
        }
    }.start();

和(注意不同的端口):

new Thread() {
    public void run() {
        ServerSocket server = new ServerSocket(6789);
        while(true) {
            Socket client1 = server.accept();
            //handle client2
        }
    }.start();

Having client1 and client2套接字您可以单独处理它们。此外,处理客户端连接应该在不同的线程中完成,以便您可以为多个客户端提供服务。当然,这段代码引入了很多重复,但请将此视为一个起点。

总而言之 - 如果您的目标是实现 HTTP GET 和 PUT,请使用 servlet 并摆脱所有这些喧嚣。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务器监听多个端口 [Java] 的相关文章

随机推荐