Unix Socket 编程

#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>

#define PORT 17951

/**************************
 *练习socket bind listen accept
 * *********************/
int main (void)
{
	int sockfd;
	int newsockfd;
	struct sockaddr_in addr;
	unsigned int addr_len = sizeof(struct sockaddr_in);

	if ( (sockfd = socket(AF_INET,SOCK_STREAM,0)) < 0 )
	{
		perror("socket created error!\n");
		return 1;
	}else
	{
		printf("socket created successfully!\n");
		printf("sockfd is %d",sockfd);
	}

	addr.sin_family = AF_INET;
	addr.sin_port   = htons(PORT); 
	addr.sin_addr.s_addr = htonl(INADDR_ANY);
	/*绑定IP地址于socket*/
	if ( bind(sockfd, (struct sockaddr *)(&addr), sizeof(struct sockaddr)) )
	{
		perror("bind error!\n");
		return 1;
	}else
	{
		printf("bind port successfully!\n");
		printf("local port is %d!\n", PORT);
	}
	/*调用listen监听*/
	if ( listen(sockfd,5) < 0)
	{	
		perror("listen error");
		return 1;
	}else
	{	
		printf("listening.....\n");
	}
	/*调用accept函数接受一个请求*/
	if ( (newsockfd = accept(sockfd,(struct sockaddr*)(&addr),&addr_len)) < 0 )
	{
		perror("accept error");
		return 1;
	}else
	{
		printf("accepted a new connection.\n");
		printf("new socket fd is %d", newsockfd);
	}
	return 0;
}
 

猜你喜欢

转载自yesmeshtu2008-163-com.iteye.com/blog/1154102