我正在开发和Android应用程序,我需要以编程方式知道手机的miui版本信息.有人知道怎么做吗?在android.os.build和android.os.build.version中,rom名称只是关于生产者的版本和一些东西.我需要知道哪个是安装的rom,例如:xiaomi.eu stable或weekly,china developer或global stable等...当我点击"phone"时,我可以从手机设置中读取相同的信息信息".
我有一个简单的python tcp服务器(我正在使用SocketServer类)的问题,必须从Java客户端接收数据.
这里是服务器端代码:
class ServerRequestHandler(SocketServer.BaseRequestHandler):
[...]
def handle(self):
requestCode = struct.unpack('>i', self.request.recv(4))[0]
[...]
[...]
Run Code Online (Sandbox Code Playgroud)
这里有客户:
addr = InetAddress.getByName(hostname);
SocketAddress sockaddr = new InetSocketAddress(addr, port);
clientSocket = new Socket();
clientSocket.connect(sockaddr, timeoutMs);
clientSocketDataOutputStream = new DataOutputStream(clientSocket.getOutputStream());
int requestCode = 1;
clientSocketDataOutputStream.writeInt(requestCode);
clientSocketDataOutputStream.flush();
Run Code Online (Sandbox Code Playgroud)
我启动Python服务器然后尝试执行必须向服务器发送整数的客户端.
在服务器端,Python引发异常,因为该recv(4)函数不读取4个字节,它只返回一个字节.
我的java客户端实际上正确地发送了4个字节,如果我尝试调用recv(1)4次它正确地读取4个字节.
我试着编写一个Python客户端来执行我的java客户端的相同操作,在这种情况下服务器recv(4)运行良好.
如何解决这个问题呢?我想实现一个简单的python buffered reader function,它逐字节地从socket读取,但我确信存在一个更智能的解决方案.