在web服务器上运行JavaEE应用程序

在web服务器上运行JavaEE应用程序,java,jakarta-ee,hosting,hole-punching,nat-traversal,Java,Jakarta Ee,Hosting,Hole Punching,Nat Traversal,下面是一个线程,该线程在端口15445处有一个套接字侦听。 无论何时向其发送数据报数据包,它都会在添加字符串(来自服务器的回复)后转发回发送者的地址。我想让这段代码在互联网上的某个地方运行,但我不知道从哪里开始 可能吗?我可以在Tomcat服务器上运行此代码,还是需要做一些不同的事情 import java.io.*; import java.net.*; public class HelloWorld extends Thread { protected DatagramSocke

下面是一个线程,该线程在端口15445处有一个套接字侦听。 无论何时向其发送数据报数据包,它都会在添加字符串(来自服务器的回复)后转发回发送者的地址。我想让这段代码在互联网上的某个地方运行,但我不知道从哪里开始

可能吗?我可以在Tomcat服务器上运行此代码,还是需要做一些不同的事情

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

public class HelloWorld extends Thread {

    protected DatagramSocket socket = null;
    protected BufferedReader in = null;

    public HelloWorld() throws IOException {
        socket = new DatagramSocket(15445);
    }

    public void run() {

        while (true) {
            try {
                byte[] buf = new byte[256];
                DatagramPacket packet = new DatagramPacket(buf, buf.length);
                socket.receive(packet);

                InetAddress address = packet.getAddress();
                int port = packet.getPort();
                String s = "Reply from SERVER";
                byte[] b= s.getBytes();
                packet = new DatagramPacket(b, b.length, address, port);
                socket.send(packet);
            } catch (IOException e) {
                e.printStackTrace();    
            }
        }

    }

    public static void main(String[] args) throws IOException {
        new HelloWorld().start();
    }
}

不,Tomcat不是web服务器。它是一个servlet/JSP引擎,碰巧内置了一个HTTP服务器

这看起来像是有一个主管道的POJO。为什么你不能把它当作服务来运行呢?为什么你认为你需要一个网络服务器

使用Jetty(echo server是afaik教程之一)并将您的端口公开给internet


如果您的代码工作正常,请通过路由器转发必要的端口,以便从internet访问。如果您正在寻找托管解决方案,vServer是一种廉价的开始方式。是进行网络配置的地方。

是否要在internet上运行此代码?就这一段?您的具体用例是什么?