Java 连接到远程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

在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.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中打开不同的套接字才能执行您试图执行的操作。