クライアントが「Hello mr server」というメッセージを送信した場合、私は基本的にサーバから応答を返そうとしていました。しかし、それはしません。ここで クライアント(Java、ソケット)から特定のメッセージを受け取ったときに自動返信を返す方法
が私のコードです:br
は文字列ではなく、
は、代わりにあなたが使用する必要がありますBufferedReaderのために、あなたは常にfalseを返しますどのbr.equals("hey mr server")
を使用している
public class Server {
public static final int PORT = 6666;
public static void main(String[] args) throws IOException {
new Server().runServer();
}
public void runServer() throws IOException {
ServerSocket serverSocket = new ServerSocket(PORT);
System.out.println("Server up and ready for connections.....");
while (true) {
Socket socket = serverSocket.accept();
BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream())); //for fetching data
String str = br.readLine(); //for fetching data
System.out.println("Client Data:" + str + '\n');
String dataSendingToClient = "gg";
OutputStreamWriter os = new OutputStreamWriter(socket.getOutputStream()); //for sending data
PrintWriter out = new PrintWriter(os); //for sending data
out.println(dataSendingToClient);
os.flush();
if (br.equals("hey mr server")){
OutputStreamWriter os2 = new OutputStreamWriter(socket.getOutputStream()); //for sending data
PrintWriter out2 = new PrintWriter(os); //for sending data
out2.println("hey mr client");
os.flush();
}
}
}
}
あなたが試したことと何を得ているのかを試してみてください。エラー出力)。 – user3366016