1#include <stdio.h>
2#include <stdlib.h>
3#include <unistd.h>
4#include <sys/socket.h>
5#include <netinet/in.h>
6
7int main (int argc, char *argv[])
8{
9 int s, len, o, port = 6666;
10 char buf[512];
11 struct sockaddr_in addr;
12 socklen_t addr_len = sizeof addr;
13
14 if (argc > 1)
15 port = atoi (argv[1]);
16
17 s = socket (PF_INET, SOCK_DGRAM, IPPROTO_UDP);
18
19 o = 1;
20 len = 4;
21 setsockopt (3, SOL_SOCKET, SO_REUSEADDR, &o, len);
22
23 addr.sin_family = AF_INET;
24 addr.sin_port = htons (port);
25 addr.sin_addr.s_addr = INADDR_ANY;
26
27 bind (s, (struct sockaddr *) &addr, sizeof addr);
28
29 for (;;) {
30 len = recvfrom (s, buf, sizeof buf, 0, (struct sockaddr *) &addr, &addr_len);
31 if (len < 0)
32 break;
33 if (write (1, buf, len) != len)
34 fprintf(stderr, "WARNING: serial characters dropped\n");
35 }
36
37 return 0;
38}
39