0
试图获取套接字的句柄。服务器和客户端运行在两个不同的程序中。Java套接字 - 服务器在客户端发送响应后挂起
它们似乎彼此很好地连接,但客户端不会正确地将其输出发送到服务器。服务器挂起。下面的代码:
服务器:
private ServerSocket serverSocket;
private Socket client;
public void run() throws Exception {
serverSocket = new ServerSocket(20005);
while(currentState == Game.State.NORMAL) {
client = serverSocket.accept();
PrintWriter out = new PrintWriter(client.getOutputStream(), true);
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
String clientInput = in.readLine();
// Takes the client input string and does some simple game logic that returns a Gson object
Gson serverResponse = processInput(clientInput);
out.write(serverResponse.toString());
out.flush();
}
}
客户:
插座ClientSocket的;
void run() throws Exception {
clientSocket = new Socket("192.168.0.24", 20005);
PrintWriter out;
BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
// Print the state of the game - returns false if state is win or lose.
while(printState()) {
out = new PrintWriter(clientSocket.getOutputStream(), true);
// This method just takes some input from the console
String clientInput = getInput();
out.write(clientInput);
out.flush();
String serverResponse = in.readLine();
updateState(serverResponse);
}
}
}
有一些潜在的游戏逻辑正在发生,但它很小,应该是无关紧要的。我想我只是误解了这里的根本。
谢谢大家。
哇,我是个白痴。谢谢。 – Slims 2013-02-10 01:25:23