2010-05-18 21 views
6

He creado un socket con CFSocket. Mi programa es correcto pero ahora quiero cerrar el socket (lado del cliente). Hay una istruccion? Gracias y lo siento por mi Inglés XPQuiero cerrar un CFSocket

Mi código:

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

Respuesta

15

CFRelease(s) debe cerrar y destruir el zócalo.

edición (después de un poco más de investigación)

Según the documentation, la forma correcta de cerrar el zócalo esté invalidando él (similar a cómo funciona un temporizador, al parecer). Por lo que usted quiere hacer:

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

Usted está seguro de que CFRealease cierra el socket? Lo he probado pero el socket no se cierra – zp26

+1

@ zp26 respuesta editada –