MES3.0はLinuxの下位互換性であり、MES3.0のユーザープログラムは原則としてLinuxでも同じソースコードで動作します。
以下、MES3.0で動作確認されたLinuxとソースコード互換のUDPサーバの例です。

#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int main() {
	int			sock, len;
	struct sockaddr_in	addr;
	struct sockaddr_in	senderinfo;
	socklen_t		addrlen;
	char			buf[64], senderstr[INET_ADDRSTRLEN];
	int			n;
	struct timeval		tv;

	sock = socket(AF_INET, SOCK_DGRAM, 0);
	getsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &tv, &len);
	printf("%ld %ld\n", tv.tv_sec, tv.tv_usec);
	tv.tv_sec = 12;
	tv.tv_usec = 0;
	setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
	addr.sin_family = AF_INET;
	addr.sin_port = htons(12345);
	addr.sin_addr.s_addr = INADDR_ANY;
	bind(sock, (struct sockaddr *)&addr, sizeof(addr));
	memset(buf, 0, sizeof(buf));
	addrlen = sizeof(senderinfo);
	n = recvfrom(sock, buf, sizeof(buf) - 1, 0, (struct sockaddr *)&senderinfo, &addrlen);
	if(n > 0) {
		inet_ntop(AF_INET, &senderinfo.sin_addr, senderstr, sizeof(senderstr));
		printf("recvfrom : %s, port=%d\n", senderstr, ntohs(senderinfo.sin_port));
	} else {
		printf("Timeout.\n");
	}
	close(sock);
	return 0;
}