使用 NSStream 中的套接字同时连接到多个服务器
Connect to multiple servers at the same time using sockets in NSStream
我正在使用 Objective-C 创建基于套接字的 iOS 应用程序,现在我的要求是同时连接到两个服务器。
我正在使用 NSInputStream
和 NSOutputStream
,我能够连接到第一个服务器,并使用委托方法与服务器发送和接收数据。
- (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!
}
我正在使用 Objective-C 创建基于套接字的 iOS 应用程序,现在我的要求是同时连接到两个服务器。
我正在使用 NSInputStream
和 NSOutputStream
,我能够连接到第一个服务器,并使用委托方法与服务器发送和接收数据。
- (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!
}