gpt4 book ai didi

java - 连接到远程 tomcat 服务器的正确格式?

转载 作者:行者123 更新时间:2023-11-28 22:45:14 25 4
gpt4 key购买 nike

学习了一些有关套接字的教程,但连接起来很吃力。

我的 tomcat 服务器位于 eric.server.com 并在端口 8052 上运行一个 ajp 连接器。

我想用敲敲java教程连接。我已将 KnockKnockProtocol.class 和 KnockKnockServer.class 上传到 eric.server.com/apps/knock

在教程中它显示了这个:

kkSocket = new Socket("tarranis", 4444);

我改成了:

kkSocket = new Socket("eric.server.com/apps/knock", 8052);

然后我从 eclipse 运行客户端程序,但我只得到 UnknownHostException。

谁能解释一下我做错了什么,对 Tomcat 和一般的 servlet 来说是全新的?

TIA

导入 java.io.;导入 java.net.;

公共(public)类 KnockKnockClient { public static void main(String[] 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”。

然后,一旦连接成功,就可以开始使用套接字协议(protocol) (ajp) 与其进行通信。 URI 部分进入 protocol 的 req_uri 部分。 , 不在主机中。

但更大的问题是 Tomcat 实际上是一个 HTTP 服务器,而不是套接字服务器。您应该编写实现本教程的服务器部分的 servlet 并在 Tomcat 中运行它,或者将其编写为独立的服务器进程。

关于java - 连接到远程 tomcat 服务器的正确格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8059323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com