gpt4 book ai didi

Android/Iphone 套接字通信

转载 作者:行者123 更新时间:2023-11-30 04:04:50 26 4
gpt4 key购买 nike

我和我的一位同事正在研究 Android 和 Iphone 应用程序之间的简单套接字通信。到目前为止我们取得的成就是我可以在另一个线程中向他发送字节数组并在服务中接收字节数组。但是我们面临的问题是,如果他不关闭套接字,我将无法阅读他发送给他的整个消息。但我需要那个套接字处于 Activity 状态,所以如果数据正常或出现问题,我可以向他发送响应。以下是我如何聆听他的消息:

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 端,它只是 Objective C 实现的输入/输出流问题。所以这段代码可以正常工作。

关于Android/Iphone 套接字通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11883562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com