我知道您可以通过使用{{3打开TCP客户端连接来创建NSInputStream
和NSOutputStream
对(免费桥接到CFReadStream
,CFWriteStream
)根据{{3}}。
如何创建侦听端口并接受NSInputStream
和NSOutputStream
对连接的TCP 服务器?
答案 0 :(得分:1)
RemoteCurrency示例项目在QServer.m(以前称为TCPServer.m)中提供了此示例。示例代码实际上是用于设置Bonjour广告,但可以为简单的TCP服务器排除该部分。
通过调用{CFSocketCreate
,绑定和监听到端口,您可以使用自己的接受回调创建套接字 {3}},并通过调用CFSocketSetAddress
后跟CFSocketCreateRunLoopSource
来开始接受回调。
然后,在接受回调中,您使用CFRunLoopAddSource
从连接句柄创建NSInputStream
/ NSOutputStream
对,设置输入流的委托并开始接收 recv 回调通过调用CFStreamCreatePairWithSocket
,然后scheduleInRunLoop:forMode:
两个流来开始使用它们。
使用open
和NSInputStream抽象(而不是创建新线程并调用标准UNIX函数socket
,bind
,listen
,{{ 1}},accept
,send
)允许用户在OSX上与其他基于运行循环的API在同一个NSRunLoop中轻松接收网络事件。
答案 1 :(得分:0)
我有一个示例应用程序,您可以下载它创建一对通过套接字连接的NSStream。然后,它使用iOS设备上的摄像头通过插槽流式传输完美的实时视频:
代码简洁,易于理解(忽略项目中的额外文件; NavController.h / m和PeerConnectionViewController.h / m以及CameraViewController.h / m是唯一相关的三个文件): / p>