@section(".text"); record sockaddr { 0: u16 family; 2: u16 port; 4: u32 addr; 8: u32 zero0; 12: u32 zero1; } extern u32(u32, u32, u32) socket; extern u32(u32, sockaddr*, u32) bind; extern u32(u32, u8*, u32, u32, u8*, u32*) recvfrom; extern u32(u32, u8*, u32, u32, u8*, u32) sendto; MY_SOCKET = socket(2, 2, 0); sockaddr sa; sa.family = 2; /* AF_INET */ sa.port = 43105; /* 25000 in net-endian */ sa.addr = 0; /* Bind to all */ sa.zero0 = 0; sa.zero1 = 0; bind(MY_SOCKET, &sa, 16); loop { OTHER_SIDE_LEN = 64; u32 msglength = recvfrom(MY_SOCKET, &BUFFER, 512, 0, &OTHER_SIDE, &OTHER_SIDE_LEN); sendto(MY_SOCKET, &BUFFER, msglength, 0, &OTHER_SIDE, OTHER_SIDE_LEN); } @section(".data"); u32 MY_SOCKET:; u32 OTHER_SIDE_LEN:; u8[64] OTHER_SIDE:; u8[512] BUFFER:;