私は、サーバからクライアントにメッセージを送信したいといくつかの問題が見つかりました:out.flush
(によって送信された場合メソッドの問題out.write();
- を)。方法、クライアントはそれを読むことができますが、私は方法
out.write();
を使用する場合 - は、クライアントが(データを受信していない)
-1
のステータスを受信
クライアントはとメッセージを受信できるように、私は何を追加する必要があります
:私はこれを使用int totalBytesRcvd = 0; // Total bytes received
int bytesRcvd; // Bytes received in last read
byte[] byteBufferreceive = new byte[256];
while (totalBytesRcvd < byteBufferreceive.length) {
if ((bytesRcvd = in.read(byteBufferreceive, totalBytesRcvd,
byteBufferreceive.length - totalBytesRcvd)) == -1)
{
Toast.makeText(this, "byte lenght: "+bytesRcvd, Toast.LENGTH_SHORT).show();
Toast.makeText(this, "communication error", Toast.LENGTH_LONG).show();
}
totalBytesRcvd += bytesRcvd;
}
System.out.println("The length of the received data "+totalBytesRcvd);
String receive;
receive = new String(byteBufferreceive);
Toast.makeText(this, receive, Toast.LENGTH_LONG).show();
クライアント側で:nmbr 2.次のメソッドは、私は、サーバーからメッセージを受信するために、クライアント側で使用する方法であり、私はこれを使用するサーバー側で
DataInputStream in = new DataInputStream(clientsock.getInputStream()); DataOutputStream out = new DataOutputStream(clientsock.getOutputStream());
:全体に行を送信するために)(
out = new PrintWriter(socket.getOutpustStream(),true)
、その後out.printlnを使用します。
in = new BufferedReader(
new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(
new OutputStreamWriter(socket.getOutputStream()));
種類を自動洗浄を可能にし、次の「のprintln、printf関数、またはフォーマット」プラスコンストラクタのいずれかを使用する必要がフラッシュを使用する必要がありますする必要はいけない場合あなたは入出力に使用していますか? –
@skaffman私は上に追加しました – user1388581
@OsamaJaved上に追加しました – user1388581