如何从NSStreams读取/写入整数
问题描述:
如何读写从/到NSStreams
的整数?我知道我可以单独读取字节,但我想考虑字节码。 Java对这些情况有DataStreams
,在Obj-C中有什么等价物?如何从NSStreams读取/写入整数
答
在溪流中没有什么像你。有标准的ntoh */hton *函数套件可以将网络转换为主机命令并返回。
答
有NSInputStream阅读:最大长度:和NSOutputStream写入:最大长度:
答
我不知道一个objc等价的,但考虑到的事情你自己的手中是不是硬:
使用移位运算符一次写入一个字节的整数,并且类似地读取和重构它们。
如果你想在大端格式写的,做这样的事情:如果你想小尾数
for(int i = 0; i < 4; i++) WriteAByteLOL((n >> (8*(4-i-1))) & 0xff);
反向循环顺序。
阅读,做到这一点(假设数据生活4字节数组b):
unsigned int n = 0;
for(int i = 0; i < 4; i++) n = (n<<8) | b[i];
轻松!
答
副手,我不知道是否有套接字层实现。
在Objective C中,查看Core Endian Reference手册。
或者查看Mac OS X中可用的C级XDR例程;外部数据表示(XDR)例程是常见的Unix级别RPC环境的一部分。
或者你可以调整你自己的字节。
gSOAP或XML或其他类似的东西也可以分层到这里的应用程序中;希望打败网络流量。 (如果我可以管理的话,我倾向于避免滚动我自己的协议)。
不管你用这些东西做什么,记住要在任何网络中的字节流中粘贴一个版本号你在这里实现的协议。
是的,但他们读取字节序列的字节数组。我想读取完整的整数,并根据平台排列顺序排列字节。 – 2009-07-16 21:03:42