Tcp 如何通过接受服务器套接字来创建NSInputStream/NSOutputStream对?

Tcp 如何通过接受服务器套接字来创建NSInputStream/NSOutputStream对?,tcp,nsstream,nsinputstream,nsoutputstream,cfstream,Tcp,Nsstream,Nsinputstream,Nsoutputstream,Cfstream,我知道您可以通过根据打开TCP客户端连接来创建NSInputStream和NSOutputStream对(免费桥接到CFReadStream,CFWriteStream) 如何创建侦听端口并将连接作为NSInputStream和NSOutputStream对接受的TCP服务器?RemoteCurrency示例项目在(以前称为TCPServer.m)中提供了一个示例。示例代码实际上是用于设置Bonjour广告的,但对于简单的TCP服务器,可以排除这一部分 您可以通过调用自己的accept回调创建一

我知道您可以通过根据打开TCP客户端连接来创建
NSInputStream
NSOutputStream
对(免费桥接到
CFReadStream
CFWriteStream


如何创建侦听端口并将连接作为
NSInputStream
NSOutputStream
对接受的TCP服务器?

RemoteCurrency示例项目在(以前称为TCPServer.m)中提供了一个示例。示例代码实际上是用于设置Bonjour广告的,但对于简单的TCP服务器,可以排除这一部分

您可以通过调用自己的accept回调创建一个套接字,bindlisten通过调用一个端口,然后通过调用开始获得accept回调

然后,在accept回调中,使用从连接句柄创建
NSInputStream
/
NSOutputStream
对,设置输入流的委托并通过调用开始接收recv回调,然后两个流开始使用它们


使用和抽象(与创建新线程和调用标准UNIX函数相比,
socket
bind
listen
accept
send
recv
)允许用户在与OSX上其他基于运行循环的API相同的NSRunLoop中轻松接收网络事件。

我有一个示例应用程序,您可以下载该应用程序,它创建了一对通过套接字连接的NSStreams。然后,它使用iOS设备上的摄像头,通过插槽传输图像完美的实时视频:

代码简洁易懂(忽略项目中的额外文件;NavController.h/m和PeerConnectionViewController.h/m和CameraViewController.h/m是仅有的三个相关文件):