Android/Iphone套接字通信

Android/Iphone套接字通信,android,iphone,sockets,Android,Iphone,Sockets,我和我的一个同事正在Android和Iphone应用程序之间进行一个简单的套接字通信。到目前为止,我们取得的成就是,我可以在另一个线程中向他发送字节数组,并在服务中接收字节数组。但我们面临的问题是,如果他不关闭插座,我就看不清他发送给我的全部信息。但是我需要那个套接字处于活动状态,所以如果数据正常或者出现了一些问题,我可以向他发送响应。以下是我如何聆听他的信息: thread = new Thread(new Runnable() { public void run() {

我和我的一个同事正在Android和Iphone应用程序之间进行一个简单的套接字通信。到目前为止,我们取得的成就是,我可以在另一个线程中向他发送字节数组,并在服务中接收字节数组。但我们面临的问题是,如果他不关闭插座,我就看不清他发送给我的全部信息。但是我需要那个套接字处于活动状态,所以如果数据正常或者出现了一些问题,我可以向他发送响应。以下是我如何聆听他的信息:

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();
thread=新线程(new Runnable()){
公开募捐{
试一试{
serverSocket=新的serverSocket(5000);
当(州){
client=serverSocket.accept();
client.setKeepAlive(true);
//日志
Log.d(“,”receivedBufferSize:“+serverSocket.getReceiveBufferSize());
Log.d(“,”已连接:“+client.isConnected());
Log.d(“,”端口:“+client.getPort());
Log.d(“,”iPAddress:“+client.getInetAddress().toString());
InputStream=client.getInputStream();
Log.d(“,”是大小:“+is.available());
字节[]字节=toByteArray(is);

对于(int i=0;i实际上问题出在Iphone端,这只是目标C实现的输入/输出流问题。所以这段代码工作正常。

实际上问题出在Iphone端,这只是目标C实现的输入/输出流问题。所以这段代码工作正常