Exemple #1
0
 public void SendData(byte[] data, double timeout)
 {
     using (var buffer = new CFDataBuffer(data)) {
         var error = (CFSocketError)(long)CFSocketSendData(Handle, IntPtr.Zero, buffer.Handle, timeout);
         if (error != CFSocketError.Success)
         {
             throw new CFSocketException(error);
         }
     }
 }
Exemple #2
0
 internal static IPEndPoint EndPointFromAddressPtr(IntPtr address)
 {
     using (var buffer = new CFDataBuffer(address)) {
         if (buffer [1] == 30)                   // AF_INET6
         {
             int port  = (buffer [2] << 8) + buffer [3];
             var bytes = new byte [16];
             Buffer.BlockCopy(buffer.Data, 8, bytes, 0, 16);
             return(new IPEndPoint(new IPAddress(bytes), port));
         }
         else if (buffer [1] == 2)                     // AF_INET
         {
             int port  = (buffer [2] << 8) + buffer [3];
             var bytes = new byte [4];
             Buffer.BlockCopy(buffer.Data, 4, bytes, 0, 4);
             return(new IPEndPoint(new IPAddress(bytes), port));
         }
         else
         {
             throw new ArgumentException();
         }
     }
 }