2

以下は、ポート15445でリッスンしているSOCKETを持つスレッドです。データグラムパケットが送信されるたびに、文字列(SERVERからの応答)を追加した後、送信者のアドレスに転送されます。このコードをインターネット上のどこかで実行したいのですが、どこから始めればよいのかわかりません。

出来ますか?このコードを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();
    }
}
4

2 に答える 2

2

いいえ、Tomcat は Web サーバーではありません。これはたまたま HTTP サーバーが組み込まれているサーブレット/JSP エンジンです。

これは、メインのPOJOのように見えます。それをサービスとして実行できないのはなぜですか?なぜWebサーバーが必要だと思いますか?

于 2013-01-10T20:33:19.167 に答える
0

Jetty(エコーサーバーはチュートリアルafaikの1つです)を使用して、ポートをインターネットに公開します。

コードが正常に機能する場合は、インターネットから到達できるように、ルーターを介して必要なポートを転送します。ホスト型ソリューションをお探しの場合は、vserverを安価に開始できます。http://www.superuser.comは、ネットワーク構成を行うための場所です。

于 2013-01-10T20:39:46.593 に答える