服务器在多个端口上侦听[Java]

Ant*_*yJK 4 java networking http

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

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

只是重申一下,我想创建这个相同的关系,但是不是服务器只监听一个端口并在接收输入时执行一个动作,我希望它在多个端口上侦听并根据客户端连接的端口并将数据发送到,执行不同的操作.

我希望将来每个端口都接受一个GET和PUT命令,但是现在我只想弄清楚如何设置服务器的基本结构,它将能够监听多个端口.我试过谷歌搜索,但我似乎找不到多少,所以任何帮助都表示赞赏.

提前致谢. - 安东尼

Tom*_*icz 7

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

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

和(注意不同的端口):

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

拥有client1client2插座你可以单独处理它们.此外,处理客户端连接应该在不同的线程中完成,以便您可以为多个客户端提供服务.当然,这段代码引入了大量重复,但请将此视为一个起点.

总结一下 - 如果您的目标是实现HTTP GET和PUT,请使用servlet并远离所有这些喧嚣.