internal static extern int EpollCtl(FileDescriptor epfd, int op, FileDescriptor fd, ref EpollEvent epollEvent);
internal static extern int EpollWait(FileDescriptor epfd, [In, Out] EpollEvent[] epollEvent, int maxevents, int timeout);
internal static extern int RecvFrom(FileDescriptor sockfd, byte[] buf, int len, int flags, ref SockAddr dest_addr, ref int addrlen);
internal static extern int SendTo(FileDescriptor sockfd, byte[] buf, int len, int flags, ref SockAddr dest_addr, int addrlen);
internal static extern FileDescriptor SetSockOpt(FileDescriptor socket, int level, int option_name, ref int option_value, int option_len = 1);
internal static extern int Bind(FileDescriptor sockfd, ref SockAddr addr, int addrlen);
internal static extern int IOCtl(FileDescriptor fd, uint request, ref InterfaceRequestWithAddress data);
internal static extern int Fcntl(FileDescriptor fd, int cmd, int arg);
internal static extern int Write(FileDescriptor fd, byte[] buf, int count);
internal static extern int Read(FileDescriptor fd, [In, Out] byte[] buf, int count);
public UdpSocket() { SocketFileDescriptor = IO.Check(IO.Socket(IO.AF_INET, IO.SOCK_DGRAM, IO.IPPROTO_IP)); }