次のような状況があります。 ポート8090でローカルにホストされたTCP/IPサーバーを稼働させています 私のアンドロイドアプリケーションからコマンドを送信できる必要があります。サーバーはそのコマンドを受け取り、必要な情報を返す必要があります。 サーバーまたはサーバーのログにアクセスできません。Java Android StudioのTCP/IPローカルホストサーバーと通信する必要があります
私が試したこと
ちょうど良いと思えるシンプルなソケット接続。しかし、printWriterを使用してserver myコマンドを送信した後。 BufferedReaderは、reader.readLine()または.read()でスタックされます。私はサーバーが私のコマンドに応答していないと仮定します。作者は正しく書いていません(どのように伝えますか?)、またはこの方法は現在の状況に対しては正しくありません。
URLとHTTPURLConnectionオブジェクトでこれを実行しようとしていましたが、正しく処理しているかどうかはわかりません。
私は私が投稿できるコードを持っていますが、私はその関連性はまだ考えていません。
あなたはどう思いますか?
要求されたコード
Socket socket = new Socket("10.0.0.16", 8090);
//Send message to server
OutputStream os = socket.getOutputStream();
OutputStreamWriter osw = new OutputStreamWriter(os);
BufferedWriter bw = new BufferedWriter(osw);
String number = "message";
String sendMessage = number + "\n";
bw.write(sendMessage);
bw.flush();
System.out.println("Message sent to the server : "+sendMessage);
Thread.sleep(10000);
//Get the return message from the server
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String message = br.readLine();
System.out.println("Message received from the server : " +message);
サーバーをデバッグできますか?サーバーが何をしているのか/受信しているのかを見て解決策が見つかるように思えます。 –
受信者が回線を読み込もうとすると、送信した後に送信者が回線を送信したか、または送信した後にソケットを閉じてしまったことを確認する必要があります。その後、すべてが大丈夫になります。代わりに何をしていますか? – greenapps
'私は投稿することができるコードを持っているが、私はその関連性がまだあるとは思わない。もちろん、あなたのコードはまだOKではありません。 – greenapps