public static void CreatePairWithPeerSocketSignature(AddressFamily family, SocketType type, ProtocolType proto, IPEndPoint endpoint, out CFReadStream readStream, out CFWriteStream writeStream) { using (var address = new CFSocketAddress(endpoint)) { var sig = new CFSocketSignature(family, type, proto, address); IntPtr read, write; CFStreamCreatePairWithPeerSocketSignature(IntPtr.Zero, ref sig, out read, out write); readStream = new CFReadStream(read); writeStream = new CFWriteStream(write); } }
public static CFSocket CreateConnectedToSocketSignature(AddressFamily family, SocketType type, ProtocolType proto, IPEndPoint endpoint, double timeout) { var cbTypes = CFSocketCallBackType.ConnectCallBack | CFSocketCallBackType.DataCallBack; using (var address = new CFSocketAddress(endpoint)) { var sig = new CFSocketSignature(family, type, proto, address); var handle = CFSocketCreateConnectedToSocketSignature( IntPtr.Zero, ref sig, cbTypes, OnCallback, IntPtr.Zero, timeout); if (handle == IntPtr.Zero) { throw new CFSocketException(CFSocketError.Error); } return(new CFSocket(handle)); } }
static extern void CFStreamCreatePairWithPeerSocketSignature(IntPtr allocator, ref CFSocketSignature sig, out IntPtr read, out IntPtr write);
public static void CreatePairWithPeerSocketSignature(AddressFamily family, SocketType type, ProtocolType proto, IPEndPoint endpoint, out CFReadStream readStream, out CFWriteStream writeStream) { using (var address = new CFSocketAddress (endpoint)) { var sig = new CFSocketSignature (family, type, proto, address); IntPtr read, write; CFStreamCreatePairWithPeerSocketSignature (IntPtr.Zero, ref sig, out read, out write); readStream = new CFReadStream (read); writeStream = new CFWriteStream (write); } }
extern static IntPtr CFSocketCreateConnectedToSocketSignature(IntPtr allocator, ref CFSocketSignature signature, CFSocketCallBackType callBackTypes, CFSocketCallBack callout, IntPtr context, double timeout);
public CFSocket(AddressFamily family, SocketType type, ProtocolType proto, CFRunLoop loop) : this(CFSocketSignature.AddressFamilyToInt(family), CFSocketSignature.SocketTypeToInt(type), CFSocketSignature.ProtocolToInt(proto), loop) { }
extern static void CFStreamCreatePairWithPeerSocketSignature(IntPtr allocator, ref CFSocketSignature sig, out IntPtr read, out IntPtr write);
public static CFSocket CreateConnectedToSocketSignature (AddressFamily family, SocketType type, ProtocolType proto, IPEndPoint endpoint, double timeout) { var cbTypes = CFSocketCallBackType.ConnectCallBack | CFSocketCallBackType.DataCallBack; using (var address = new CFSocketAddress (endpoint)) { var sig = new CFSocketSignature (family, type, proto, address); var handle = CFSocketCreateConnectedToSocketSignature ( IntPtr.Zero, ref sig, cbTypes, OnCallback, IntPtr.Zero, timeout); if (handle == IntPtr.Zero) throw new CFSocketException (CFSocketError.Error); return new CFSocket (handle); } }
extern static IntPtr CFSocketCreateConnectedToSocketSignature (IntPtr allocator, ref CFSocketSignature signature, CFSocketCallBackType callBackTypes, CFSocketCallBack callout, IntPtr context, double timeout);