+int Net_OpenSocket_UDP(int AddrType, const void *Addr, int RPort, int LPort)
+{
+ int fd = Net_OpenSocket(AddrType, Addr, "udp");
+ if( fd == -1 ) return -1;
+
+ _SysIOCtl(fd, UDP_IOCTL_GETSETLPORT, &LPort); // Remote Port
+ int maskbits = Net_GetAddressSize(AddrType) * 8;
+ _SysIOCtl(fd, UDP_IOCTL_GETSETRPORT, &RPort);
+ _SysIOCtl(fd, UDP_IOCTL_GETSETRMASK, &maskbits);
+ _SysIOCtl(fd, UDP_IOCTL_SETRADDR, (void*)Addr); // Remote address (kernel shouldn't modify)
+ return fd;
+}
+