AndroidアプリからPCにTCP経由でデータを送信しようとしています。
コードは次のとおりです。
Socket socket = new Socket("10.0.78.75", 50505);
OutputStream out = socket.getOutputStream();
PrintWriter output = new PrintWriter(out);
mStatusText.setText("Sending Data to PC");
output.println("Hello from Android");
mStatusText.setText("Data sent to PC");
socket.close();
mStatusText.setText("Socket closed");
これを実行している間、エラーはまったく発生しませんが、サーバーアプリケーション(C#で記述)はデータを取得しません。クライアントがそれに接続していることを確認し、データが送信されていることを確認しますが、データ文字列は空になります...そしてなぜこれが起こっているのか考えますか?
PS:サーバーコードは次のサイトからコピーされ、C#TCPクライアントでテストされています。 http://www.switchonthecode.com/tutorials/csharp-tutorial- simple-threaded-tcp-server
out.flush();out.close();
の後にprintln(..)
を付けてみてください。
私は同じ問題を抱えていましたが、ハファザードの解決策は私にとって十分ではありませんでした。 (この場合)output.flush();
とoutput.close();
の代わりにout.flush();
とout.close();
を使用する必要があると思います。そして、あなたはAndroidManifest.xml
のインターネット許可について覚えておく必要があります:
<uses-permission Android:name="Android.permission.INTERNET"></uses-permission>
<uses-sdk>
の後および<application>
の前
全体的にこれを推測しますが、閉じる前に出力ストリームでflush()
を呼び出してみましたか?