【问题标题】:Running Java EE application on web-server在 Web 服务器上运行 Java EE 应用程序
【发布时间】:2012-12-25 08:39:21
【问题描述】:

以下是一个线程,它有一个 SOCKET 在端口 15445 上侦听。 每当向它发送数据报包时,它都会在其中添加一个字符串(来自服务器的回复)后转发回发送者的地址。我希望这段代码在 Internet 上的某个地方运行,但我不知道从哪里开始。

有可能吗?我可以在 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();
    }
}

【问题讨论】:

  • 您想在互联网上运行此代码吗?只是this sn-p 在这里?你的具体用例是什么?

标签: java jakarta-ee hosting hole-punching nat-traversal


【解决方案1】:

不,Tomcat 不是 Web 服务器。它是一个 servlet/JSP 引擎,恰好内置了 HTTP 服务器。

这看起来像带有 main 的 POJO。为什么不能将其作为服务运行?为什么你认为你需要一个网络服务器?

【讨论】:

    【解决方案2】:

    使用 Jetty(回声服务器是 afaik 教程之一)并将您的端口公开到互联网。

    如果您的代码运行良好,则通过您的路由器转发必要的端口,以便可以从互联网访问。如果您正在寻找托管解决方案,vservers 是一种廉价的开始方式。 http://www.superuser.com是配置网络的地方。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 2012-07-22
      • 2011-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多