【发布时间】:2016-09-25 18:34:46
【问题描述】:
我创建了一个简单的类,它将一个字符串发送到服务器,两者都使用 Java 套接字 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());
}
}
}
我想问题可能出在客户端执行流程中,因为我不知道如何等待服务器响应。换句话说,如何实现一个能够读取服务器响应的客户端?
【问题讨论】: