(HTTP 接続を受信する代わりに) 直接 TCP 接続を受信するように Tomcat 5.5 を構成する必要があります。
アイデアは、クライアントから TCP 接続を受信し、その情報をデータベースに保存することです。
手伝ってくれますか?
(HTTP 接続を受信する代わりに) 直接 TCP 接続を受信するように Tomcat 5.5 を構成する必要があります。
アイデアは、クライアントから TCP 接続を受信し、その情報をデータベースに保存することです。
手伝ってくれますか?
あなたの質問は、用語の矛盾を具体化しています。Tomcatはサーブレットコンテナです。サーブレットはHTTPを話します。サーブレットまたはサーブレットコンテキストリスナー内でいつでもServerSocketを開くことができますが、実際には何のためにTomcatが必要ですか?
EJP は正しいと思いますが、Tomcat は http 接続を提供するように意図されています。リスナーを使用した基本的なアプローチは次のとおりです。
package test;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ServerSocketListener implements ServletContextListener {
private ServerSocket serverSocket;
private final int PORT = 8081;
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("Starting server socket at port: " + PORT);
try {
serverSocket = new ServerSocket(PORT);
while (true) {
Socket client = serverSocket.accept();
System.out.println("Client connected from: "+client.getInetAddress().getHostAddress());
//handle connection ...
}
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
try {
if(serverSocket!=null) {
System.out.println("Stopping server socket at port: " + PORT);
serverSocket.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
web.xml に次の行を追加します。
<listener>
<listener-class>test.ServerSocketListener</listener-class>
</listener>
次に、携帯電話で http://[Server-ip]:8081/ にアクセスします。