2014-02-21 26 views
1

我已經看過似乎相關的類,但是不清楚是否存在與用於TCP/UDP套接字的管道相當的類。 Socket類的描述似乎不只是做你需要創建和綁定一個端口並設置監聽。目前我已經在直接的unix網絡原語中實現了這一點...但如果我的Socket與Pipe實際上是相同的API,那將會很好。在GNUstep中進行IP網絡的標準方式是什麼?

其他人如何處理?我誤解了Socket的用途嗎?

這是一個我不想複雜的情況,只是標準IP網絡的標準OO覆蓋。

回答

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]; 
+0

耶最後我檢查,他們在基礎相當不錯的平價,但像8年前...但8年前所有的東西是基礎,所以...我想你寫什麼在OS X或GnuStep中該層應該幾乎相同 –

+0

兩個端口可以相同嗎?我有一個應用層協議,根據遠程操作的成功返回ACK或NAK信息。 (並且它在unix調用中工作得很好,所以我寧願不改變它們。 –

+0

@DaleAmon如果你有很好的可移植的posix代碼工作,那麼不要用NSBlahBlah包裝器重寫它...你不會獲得任何東西 –

相關問題