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