[英]Objective-C NSMutableArray of sockets?
我想在ArrayList / NSMutableArray中存儲幾個套接字,但是套接字的類型為int,而NSMutableArray僅接受對象(id)。 是否有我可以用作套接字容器的另一種數據類型? 我不確定會有多少個條目,因此我希望數據容器像一個ArrayList。
謝謝!
編輯:我嘗試將套接字作為NSNumber發送,但是當我嘗試使用套接字發送消息時,它不起作用並導致XCode崩潰。
您應該將文件描述符包裝在NSFileHandle
實例中,它們將在NSArray
等集合對象中發揮NSArray
,並設計為用於包裝套接字等文件描述符。 它們還允許您將標准Foundation類型(例如NSData
)與您的通信一起使用。
int s = socket(AF_INET, SOCK_STREAM, 0);
if (s != -1)
{
// bind or connect to address
NSFileHandle *mySock = [[NSFileHandle alloc] initWithFileDescriptor:s closeOnDealloc:YES];
[myMutableArray addObject:mySock];
}
請注意, NSFileHandle
還提供了方便的方法來異步接受連接以及異步I / O。 您可以使用fileDescriptor
方法獲得原始文件描述符。
您可以將int包裝在NSNumber中,如下所示:
NSNumber *socket = [NSNumber numberWithInt:socketInt];
[myArray addObject:socket];
NSNumber *getSocket = [myArray objectAtIndex:0];
int getSocketInt = [getSocket intValue];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.