![]() |
1
1
如果您想在没有第三方库的情况下以本机方式执行此操作, 然后您可以使用 CFStreamCreatePairWithSocketToHost 函数创建输入和输出流(不需要套接字对象)。
Here's some example code to set this up
在iOS上,您无法立即写入或读取流,您必须等待套接字连接,并且您获得读/写权限。这是通过实现 NSStreamDelegate 。 如果您在那里获得了nsstreamventhassspaceavailable事件,则可以将字符串写入输出流。您不需要一个PrintWriter来编写字符串,因为它很容易 convert NSString to NSData ,并写入NSData。 如果您获得了NSStreamEventHasBytesAvailable事件,意味着您可以尝试将数据从输入流读取到某个缓冲区(如NSMutableData)。没有内置的带readLine方法的BufferedReader,因此您必须自己缓冲数据,并在出现新行字符时进行检测。之后,您可以剪切缓冲区的一部分,直到新行,并且 convert NSData to NSString (或通过使用 NSJSONSerialization )。 注意:scheduleinrunlop调用可能看起来很混乱,但需要它们通过委托开始接收事件。它可以告诉系统您希望在哪个线程上接收它们。 P、 我同意评论者的观点,如果您可以控制服务器代码,那么最好使用标准协议,如 Socket IO 或 msgpack 而不是自己发明,因为他们有更好更好的图书馆和更广泛的社区支持。 |
![]() |
Martin sku · 在目标C中打印时间 3 年前 |
![]() |
Vinod prajapat · 如何更新数组的最后一个元素? 3 年前 |
![]() |
subin272 · 修复iOS中的多个按钮单击事件? 7 年前 |
![]() |
James Chan · 如何使用锁定/解锁? 7 年前 |
![]() |
Josh F. · NSBundle mainBundle返回零 7 年前 |