使用 NSStream 中的套接字同时连接到多个服务器

Connect to multiple servers at the same time using sockets in NSStream

我正在使用 Objective-C 创建基于套接字的 iOS 应用程序,现在我的要求是同时连接到两个服务器。

我正在使用 NSInputStreamNSOutputStream,我能够连接到第一个服务器,并使用委托方法与服务器发送和接收数据。

- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent

如何同时连接第二个服务器或同时连接多个服务器?

您有两个选择,您通常要做的是创建 class 的多个实例,在其中实施

- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent

例如,您可以使用如下 init 方法拥有自己的 CustomConnection class:

- (id)initWithUrl:(NSURL *)url

但是您还可以做的(如果您想将所有内容都放在一个地方)只需测试向您发送事件的 NSStream:

- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent
{
   if(theStream == self.serverAInputStream)
   {
      //input from server a
   }
   if(theStream == self.serverBInputStream)
   // ... and so on!
}