/* simple talk program SIGIO signal handler */
#include <stdio.h>
#include <signal.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define MAXLINE 512
void sigio_handler(int signo)
{
int n;
char recvline[MAXLINE+1];
int peerlen;
struct sockaddr_in peer_addr;
extern int sockfd;
if ((n = recvfrom(sockfd, recvline, MAXLINE, 0, (struct sockaddr *)
&peer_addr, &peerlen)) < 0)
err_sys("recvfrom");
recvline[n] = '\0';
printf("-> %s", recvline);
fflush(stdout);
return;
}