Java Networking API を使用してクライアント/サーバーを作成しています。私のクライアントは、メッセージの前後に特殊な Unicode 文字をサーバーに送信します。message の前に送信さ\uc001B
れ、 message の後に送信されます\uc00C
。メッセージが正常に送信された後、クライアントは\r
サーバーに送信します。サーバーはこれを受信することで、メッセージの送信が完了したことを識別できます。しかし、ここでの問題は、クライアントからのメッセージに\r
.
DataOutputStream outToServer = new DataOutputStream( clientSocket.getOutputStream());
BufferedReader inFromServer = new BufferedReader(new InputStreamReader(
clientSocket.getInputStream()));
outToServer.writeBytes("\uc001B");
outToServer.flush();
outToServer.writeBytes(message.toString());
outToServer.writeBytes("\uc001C");
outToServer.flush();
outToServer.writeBytes("\r");
outToServer.flush();
そして、これがクライアントからメッセージを読み取るための私のサーバーコードです
in = new BufferedReader(new InputStreamReader(m_clientSocket.getInputStream()));
out = new PrintWriter(new OutputStreamWriter( m_clientSocket.getOutputStream()));
String receivingMessage = "";
while (m_bRunThread) {
String clientCommand = in.readLine().toString();
receivingMessage += clientCommand;
System.out.println("Client Says :" + clientCommand);
if (in.equals("\r")) {
System.out.print("Message Receiving from Client Done : "+ m_clientID);
m_bRunThread = false;
}
}
ありがとう