我想关闭一个CFSocket

zp2*_*p26 8 sockets iphone objective-c

我用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
Run Code Online (Sandbox Code Playgroud)

Dav*_*ong 17

CFRelease(s) 应关闭并销毁插座.

编辑(经过一番研究)

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

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