繁体   English   中英

Android / Iphone插座通讯

[英]Android / Iphone socket communication

我和我的一位同事正在研究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();

因此,如果他不关闭应用程序或不关闭套接字,我会坐在该日志消息上: Log.d("","is Size : "+is.available()); 并没有真正发生。 他关闭套接字后,我可以看到接收到的字节数组的字节。

任何想法我做错了什么或任何类型的建议/帮助会导致什么呢?

提前致谢!

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM