在GNUstep中进行IP网络的标准方法是什么?

时间:2014-02-21 20:39:47

标签: objective-c linux sockets gnustep

我查看过似乎相关的类,但不清楚是否有一个类似于Pipe的类用于TCP / UDP套接字。 Socket类描述似乎不仅仅是你需要创建和绑定端口并设置监听。目前我已经在直接unix网络原语中实现了这一点......但是如果我的Socket与Pipe真的是同一个API那就太好了。

其他人如何处理这件事?我错了Socket的作用吗?

在这种情况下,我不需要复杂性,只是标准IP网络的标准OO封面。

1 个答案:

答案 0 :(得分:1)

我有一段时间没有使用过GNUstep,所以这是基于Apple的库,你需要确保没有差异。

可以使用NSStream上的类方法创建TCP连接,该方法返回输入流和输出流以进行通信。

NSHost *host = ...;
NSUInteger port = ...;
NSInputStream *input;
NSOutputStream *output;
[NSStream getStreamsToHost:host port:port inputStream:&input
                                         outputStream:&output];

对于其他连接,您可以使用标准Unix API创建连接,然后创建NSFileHandle以包装文件描述符。

int fd = socket(...);
NSFileHandle *fileHandle = [[NSFileHandle alloc] initWithFileDescriptor:fd
                                                         closeOnDealloc:YES];