我想关闭一个CFSocket

时间:2010-05-18 20:28:07

标签: iphone objective-c sockets

我用CFSocket创建了一个套接字。 我的程序是正确的,但现在我想关闭套接字(客户端)。 有一个建筑? 谢谢,抱歉我的英文XP

我的代码:

CFSocketRef s;
s = CFSocketCreate(
        NULL, 
        PF_INET,
        SOCK_STREAM, 
        IPPROTO_TCP, 
        kCFSocketDataCallBack, 
        AcceptDataCallback, 
        &context);
...
CFSocketConnectToAddress(s, address, 0);
...
//here i wanna close the socket

1 个答案:

答案 0 :(得分:17)

CFRelease(s)应该关闭并销毁套接字。

编辑(经过更多研究后)

根据the documentation,关闭套接字的正确方法是使其无效(类似于Timer的工作方式,显然)。所以你想做:

CFSocketInvalidate(s);  //closes the socket, unless you set the option to not close on invalidation
CFRelease(s);  //balance the create