suibenzhi
11/28/2016 - 11:02 AM

tcp链接.c

int serverLinkTCP(int *listenfd, const char *IPaddr, int port, struct sockaddr_in *servaddr)
{


	if ((*listenfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
	{
		perror("socket");
		return -1;
	}

	bzero(servaddr, sizeof(struct sockaddr_in));
	(*servaddr).sin_family      = AF_INET;
	inet_aton(IPaddr, &((*servaddr).sin_addr));
	(*servaddr).sin_port        = htons(port);

	if (bind(*listenfd, (struct sockaddr *) servaddr, sizeof(struct sockaddr_in)) == -1)
	{
		perror("bind");
		return -2;
	}

	if (listen(*listenfd, BACKLOG) == -1)
	{
		perror("listen");
		return -3;
	}

	return 0;
}


int clientLinkTCP(int *sockfd, const char *IPaddr, int port, struct sockaddr_in *servaddr)
{

	if ((*sockfd = socket(AF_INET,SOCK_STREAM,0)) == -1)
	{
		perror("socket");
		return -1;
	}

	bzero(servaddr, sizeof(*servaddr));
	(*servaddr).sin_family = AF_INET;
	(*servaddr).sin_port = htons(port);
	inet_aton(IPaddr, &(*servaddr).sin_addr);

	if(connect(*sockfd, (struct sockaddr *) servaddr, sizeof(struct sockaddr_in)) == -1)
	{
		perror("connect");
		return -2;
	}

	return 0;

}