サーバーとクライアントを作成しています。現在、 から にメッセージを送信でき、Client
はServerThread
メッセージServerThread
を取得できます。しかし、ServerThread
が応答を返そうとすると、Client
は応答を受け取りませんが、メッセージは送信されました。応答を待っているようですが、受信できません。
サーバースレッド:
public class ServerThread extends Thread {
private Socket socket;
private DataOutputStream outToClient;
private BufferedReader inFromClient;
public ServerThread(Socket socket) {
try {
System.out.println("Thread started");
this.socket = socket;
outToClient = new DataOutputStream(socket.getOutputStream());
inFromClient = new BufferedReader(new InputStreamReader(socket.getInputStream()));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
public void run() {
System.out.println("Thread running");
try {
System.out.println("ServerThread: " + inFromClient.readLine());
outToClient.writeBytes("I Can help you");
} catch (Exception e) {
e.printStackTrace();
}
}
}
サーバ:
public class Server {
public static final int PORT = 5589;
public static void main(String[] args) {
ServerSocket socket;
try {
socket = new ServerSocket(5589);
while (true)
new ServerThread(socket.accept()).start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
クライアント:
public class Client {
public static void main(String args[]) throws Exception {
Socket socket = new Socket("localhost", App.PORT);
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintWriter outToServer = new PrintWriter(socket.getOutputStream(), true);
outToServer.println("Hello, I'm Lost");
System.out.println(inFromServer.readLine()); //Hangs on this line
socket.close();
}
}