HP Rp5405 BSD Sockets Interface Programmer's Guide - Page 163
&fromlen
View all HP Rp5405 manuals
Add to My Manuals
Save this manual to your list of manuals |
Page 163 highlights
Using UNIX Domain Datagram Sockets Example Using UNIX Domain Datagram Sockets perror("client: bind"); exit(3); } /* Set up address structure for server socket */ bzero(&servaddr, sizeof(servaddr)); servaddr.sun_family = AF_UNIX; strcpy(servaddr.sun_path, SOCKET_PATH); for (j = 0; j < 5; j++) { sleep(1); slen = sendto(sock, sdata, 2000, 0, (struct sockaddr *) &servaddr, sizeof(servaddr)); if (slen
Chapter 7
163
Using UNIX Domain Datagram Sockets
Example Using UNIX Domain Datagram Sockets
perror(”client: bind”);
exit(3);
}
/*
Set up address structure for server socket */
bzero(&servaddr, sizeof(servaddr));
servaddr.sun_family = AF_UNIX;
strcpy(servaddr.sun_path, SOCKET_PATH);
for (j = 0; j < 5; j++) {
sleep(1);
slen = sendto(sock, sdata, 2000, 0,
(struct sockaddr *) &servaddr,
sizeof(servaddr));
if (slen<0) {
perror(”client: sendto”);
exit(4);
}
else {
printf(”client : sent %d bytes\n”, slen);
fromlen = sizeof(from);
rlen = recvfrom(sock, rdata, 2000, 0, &from,
&fromlen);
if (rlen == -1) {
perror(”client: recvfrom\n”);
exit(5);
} else
printf(”client : received %d bytes\n”, rlen);
}
}
/*
Use unlink to remove the file (inode) so that the
*
name will be available for the next run.
*/
sleep(1);
unlink(SOCKET_PATHCLNT);
close(sock);
printf(”Client done\n”);
exit(0);
}
timeout() /* escape hatch so blocking calls don't wait forever */
{
printf( “alarm went off — stopping client\n” );
fprintf(stderr, “stopping the client process\n”);
exit(6);
}