我需要配置Tomcat 5.5以接收直接TCP连接(而不是接收HTTP连接)。
我们的想法是从客户端接收TCP连接并将信息存储在数据库中。
你能帮忙吗?
答案 0 :(得分:2)
你的问题体现了矛盾。 Tomcat是一个servlet容器; servlet说HTTP。你总是可以在Servlet或ServletContextListener中打开一个ServerSocket,但是你真的需要Tomcat来做什么呢?
答案 1 :(得分:0)
虽然我认为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 /。