www.pudn.com > tcpcliserv.rar > tcpcli07.c


#include	"unp.h"

int
main(int argc, char **argv)
{
	int					sockfd;
	void				sig_alrm(int);
	struct itimerval	val;
	struct sockaddr_in	servaddr;

	if (argc != 2)
		err_quit("usage: tcpcli ");

	sockfd = Socket(AF_INET, SOCK_STREAM, 0);

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_port = htons(SERV_PORT);
	Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);

		/* Set interval timer to go off before 3WHS completes */
	Signal(SIGALRM, sig_alrm);
	val.it_interval.tv_sec  = 0;
	val.it_interval.tv_usec = 0;
	val.it_value.tv_sec  = 0;
	val.it_value.tv_usec = 50000;	/* 50 ms */
	if (setitimer(ITIMER_REAL, &val, NULL) == -1)
		err_sys("setitimer error");

	Connect(sockfd, (SA *) &servaddr, sizeof(servaddr));

	str_cli(stdin, sockfd);		/* do it all */

	exit(0);
}

void
sig_alrm(int signo)
{
	exit(0);
}