나와 내 동료 중 하나는 안드로이드와 아이폰 응용 프로그램 사이의 간단한 소켓 통신에 노력하고 있습니다. 우리가 지금까지 달성 한 것은 다른 스레드에서 바이트 배열을 그에게 보내고 바이트 배열을 사용할 수 있다는 것입니다. 그러나 우리가 직면하는 문제는 그가 소켓을 닫지 않으면 그가 보내는 모든 메시지를 읽을 수 없다는 것입니다. 하지만 그 소켓이 살아 있어야하기 때문에 데이터가 좋았거나 문제가 있다면 응답을 보낼 수 있습니다.안드로이드/아이폰 소켓 통신
thread = new Thread(new Runnable() {
public void run() {
try {
serverSocket = new ServerSocket(5000);
while(state){
client = serverSocket.accept();
client.setKeepAlive(true);
// LOGS
Log.d("","receivedBufferSize : "+serverSocket.getReceiveBufferSize());
Log.d("","is connected : "+client.isConnected());
Log.d("","port : "+client.getPort());
Log.d("","ipadress : "+client.getInetAddress().toString());
InputStream is = client.getInputStream();
Log.d("","is Size : "+is.available());
byte[] bytes = toByteArray(is);
for(int i=0;i<bytes.length;i++){
Log.d("","bytes["+i+"] : "+bytes[i]);
}
}
serverSocket.close();
Log.d("","client socket : "+client.isClosed() + " serverSocket : "+serverSocket.isClosed());
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
});
thread.start();
을 그는 내가 그 로그 메시지에 앉아하고, 응용 프로그램을 종료하지 않거나 소켓을 닫지 않도록 경우 : Log.d("","is Size : "+is.available());
아무것도 정말로 일어나지 않습니다 여기에 내가 그의 메시지에 대해 청취하고 방법이다. 소켓을 닫은 후받은 바이트 배열의 바이트를 볼 수 있습니다.
내가 뭘 잘못하고 있는지 또는 어떤 종류의 제안이 있습니까/원인이 무엇입니까?
미리 감사드립니다.