2010-05-18 54 views
6

我已经用CFSocket创建了一个套接字。 我的程序是正确的,但现在我想关闭套接字(客户端)。 有一个构造? 感谢和我的英语水平XP我想关闭一个CFSocket

我的代码惋惜:

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

回答

15

CFRelease(s)应该关闭和破坏插座。

编辑(多一点研究后)

the documentation,关闭套接字的正确方法是无效它(类似于一个定时器是如何工作的,显然)。所以你想要做的:

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

你确定CFRealease关闭套接字? 我已经测试过但插座不关闭 – zp26 2010-05-18 20:43:01

+1

@ zp26已编辑答案 – 2010-05-18 20:48:51