unsafe internal static IPEndPoint GetSockname(Handle handle, uv_getsockname getsockname) { sockaddr_in6 addr; IntPtr ptr = new IntPtr(&addr); int length = sizeof(sockaddr_in6); int r = getsockname(handle.NativeHandle, ptr, ref length); Ensure.Success(r); return(UV.GetIPEndPoint(ptr, true)); }
internal NetworkInterface(uv_interface_address_t *iface) { Name = Marshal.PtrToStringAnsi(iface->name); Internal = iface->is_internal != 0; byte[] phys_addr = new byte[6]; for (int i = 0; i < phys_addr.Length; i++) { phys_addr[i] = iface->phys_addr[i]; } PhysicalAddress = new PhysicalAddress(phys_addr); Address = UV.GetIPEndPoint(new IntPtr(&iface->sockaddr), false).Address; Netmask = UV.GetIPEndPoint(new IntPtr(&iface->netmask), false).Address; }
private void recv_callback(IntPtr handle, IntPtr nread, IntPtr sockaddr, ushort flags) { int n = (int)nread; if (n == 0) { return; } if (Message != null) { var ep = UV.GetIPEndPoint(sockaddr, true); var msg = new UdpReceiveMessage( ep, ByteBufferAllocator.Retrieve(n), (flags & (short)uv_udp_flags.UV_UDP_PARTIAL) > 0 ); Message(msg); } }