GCDAsyncSocketを使用してiOSサーバーを作成し、Java言語を使用してクライアントを作成します。 NSDAtaの形式でデータを送信すると、SocketTester(クライアント接続のテスト用アプリケーション)で読み取ることができますが、Java側では完全に読み取ることはできません。NSDataをJavaで作成されたクライアントサイドに読み込む方法
static void recorderServerClient() throws IOException{
int port =9892;
clientSocket = new Socket("localhost", port);
System.out.print("Connected to localhost"+port);
while (true){
InputStream inputStream = clientSocket.getInputStream();
try {
Thread.sleep(3000);
}
catch (InterruptedException e) {
e.printStackTrace();
}/*fetch data with help of output stream and write it with help of PrintWriter */
PrintWriter printWriterObj = new PrintWriter(clientSocket.getOutputStream());
printWriterObj.println();
printWriterObj.flush();
/*created an array for now static and assign some memory */ byte[] buffer = new byte[1000000];
int read;
while((read = inputStream.read(buffer)) != -1) {
String output = new String(buffer, 0, read);
System.out.print(output);
System.out.flush();
}
}
*/
}
私は、iOSを介して送信されるデータの長さを取得server.andバッファを作成accordingly.Canいずれかが私を助けたいですか?
どのような問題がありますか?あなたの不足しているSocket.accept()呼び出しが見えますか? –
javaのreadIntメソッドでデータ長を読み取ることができません。 – Ruby