私は現在、ソケットを開き、それを介してデータを送受信する必要があるJavaでアプリを作成しています。
バッファが空になると BufferedReader.readLine() が null を返すことは私の理解です。ただし、私のコードは、BufferedReader から行を読み取るループから終了しません。アイデアは、曲のリストを受け取り、曲の再生を開始するサーバーに値を送信することです。
これはコードです:
package me.frankvanbever.MediaServerClient;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
public class MediaServerClient {
/**
* @param args
*/
public static void main(String[] args) {
Socket server;
try {
server = new Socket( "10.42.0.41" , 2626 );
InputStream in = server.getInputStream();
OutputStream out = server.getOutputStream();
BufferedReader bin = new BufferedReader( new InputStreamReader( in ) , 4096);
String inputline;
while( (inputline = bin.readLine()) != null){
System.out.println(inputline);
}
System.out.println("exited loop");
out.write('1');
} catch (UnknownHostException e) {
} catch (IOException e) {
}
}
}
これは正常な動作ですか?サーバーは Python で書かれており、ソース コードを変更できます。