7 #include <sys/socket.h>
11 static sig_atomic_t sigint
= 0;
13 static void intr(int sig
)
18 static inline void register_signal(int signal
, void (*handler
)(int))
21 struct sigaction saction
;
23 sigfillset(&block_mask
);
24 saction
.sa_handler
= handler
;
25 saction
.sa_mask
= block_mask
;
26 saction
.sa_flags
= SA_RESTART
;
28 sigaction(signal
, &saction
, NULL
);
38 register_signal(SIGINT
, intr
);
39 sock
= socket(AF_LANA
, SOCK_DGRAM
, 0);
45 memset(&msg
, 0, sizeof(msg
));
46 memset(iov
, 0, sizeof(iov
));
47 iov
[0].iov_base
= buff
;
48 iov
[0].iov_len
= sizeof(buff
);
52 printf("Worked! Abort with ^C\n");
54 // int ret = recvmsg(sock, &msg, 0);
55 int ret
= recv(sock
, buff
, sizeof(buff
), 0);
61 char *ptr
= (char *) iov
[0].iov_base
;
62 size_t len
= iov
[0].iov_len
;
63 printf("msg received:\n");
64 for (; len
-- > 0; ptr
++)
65 printf("%c ", isprint(*buff
) ? *buff
: '.');
67 // memset(iov[0].iov_base, 0, iov[0].iov_len);
68 memset(buff
, 0, sizeof(buff
));