Java 连接到远程tomcat服务器的格式是否正确?
在sockets上玩一些教程,但很难连接 我的tomcat服务器位于Java 连接到远程tomcat服务器的格式是否正确?,java,tomcat,Java,Tomcat,在sockets上玩一些教程,但很难连接 我的tomcat服务器位于eric.server.com,在端口8052上运行ajp连接器 我想使用敲打java教程来连接。我已将knockProtocol.class和knockServer.class上传到eric.server.com/apps/knock 在本教程中,它显示了以下内容: kkSocket = new Socket("tarranis", 4444); 我已将其更改为: kkSocket = new Socket("eric.se
eric.server.com
,在端口8052上运行ajp连接器
我想使用敲打java教程来连接。我已将knockProtocol.class和knockServer.class上传到eric.server.com/apps/knock
在本教程中,它显示了以下内容:
kkSocket = new Socket("tarranis", 4444);
我已将其更改为:
kkSocket = new Socket("eric.server.com/apps/knock", 8052);
然后,我从eclipse运行客户机程序,但我只得到了UnknownHostException
有人能解释一下我做错了什么,对Tomcat和servlets来说都是全新的吗
短暂性脑缺血发作
导入java.io。;
导入java.net
公共类客户端{
公共静态void main(字符串[]args)引发IOException{
Socket kkSocket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
kkSocket = new Socket("eric.server.com", 8052);
out = new PrintWriter(kkSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(kkSocket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host.");
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for the connection to.");
System.exit(1);
}
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String fromServer;
String fromUser;
while ((fromServer = in.readLine()) != null) {
System.out.println("Server: " + fromServer);
if (fromServer.equals("Bye."))
break;
fromUser = stdIn.readLine();
if (fromUser != null) {
System.out.println("Client: " + fromUser);
out.println(fromUser);
}
}
out.close();
in.close();
stdIn.close();
kkSocket.close();
}
}您使用的主机名是“eric.server.com/apps/knock”,而您真正想要的是“eric.server.com” 一旦连接,就可以开始使用套接字协议(ajp)与之通信。URI部分位于的req_URI部分,而不是主机中
但更大的问题是Tomcat实际上是一个HTTP服务器,而不是一个套接字服务器。您应该编写一个servlet来实现教程中的服务器部分并在Tomcat中运行它,或者只是将其作为一个独立的服务器进程来编写。完整的代码中没有任何请求uri。如果可以避免,我不确定是否要使用HTTP。可以吗您显示了req_uri位的位置,我已经编辑了我的原始问题?感谢AJP协议有一个名为req_uri的字段。请阅读答案中的协议链接。我认为问题在于您假设AJP端口不是。同样,Tomcat是一个HTTP服务器,您在使用时只能通过uri引用servletAJP或HTTP,您必须在这样的套接字上使用相应的协议。您必须从servlet中打开不同的套接字才能执行您试图执行的操作。