我用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
答案 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