gpt4 book ai didi

java - 使用 Java Sockets API 读取服务器响应

转载 作者:行者123 更新时间:2023-12-01 09:27:56 24 4
gpt4 key购买 nike

我创建了一个简单的类,它将字符串发送到服务器,两者都使用 Java Sockets API 进行通信。服务器读取客户端发送的内容,并用另一个字符串进行响应。但客户端无法读取该响应。

这是客户端类:

import java.io.IOException;
import java.net.Socket;

public class Client {

public static void main(String[] args) throws IOException {
Socket socket = new Socket("localhost", 8181);
socket.getOutputStream().write("Hello".getBytes());

int read;
while ((read = socket.getInputStream().read()) > -1) {
System.out.print((char) read);
}

socket.close();
}

}

这是服务器类:

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {

public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8181);

while (true) {
Socket socket = serverSocket.accept();
int read;
while ((read = socket.getInputStream().read()) > -1) {
System.out.print((char) read);
}

socket.getOutputStream().write("Hi!".getBytes());
}

}

}

我想问题可能出在客户端执行流程中,因为我不知道如何等待服务器响应。换句话说,如何实现客户端能够读取服务器响应?

最佳答案

  1. 您没有关闭套接字。
  2. 服务器正在尝试读取直到流结束,然后发送回复。仅当对等方关闭连接时才会发生流结束,因此即使修复 (1) 后也无法发送回复。您需要阅读一条消息,无论它在您的应用程序协议(protocol)中意味着什么。

关于java - 使用 Java Sockets API 读取服务器响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39690397/

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