server socket

/*
 *程序执行:strace +可执行文件	新开一个终端:执行telnet localhost +端口号(Ctrl +]结束 quit:退出)
 */
#include <stdio.h>
#include <string.h>
#include <unistd.h>
//#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main(void)
{
	int fd = socket(AF_INET, SOCK_STREAM, 0);	//socket:创建文件描述符(套接字)
	
	struct sockaddr_in servaddr;	//定义一个结构体变量:服务端
	bzero(&servaddr, sizeof(servaddr));	//清零
	servaddr.sin_family = AF_INET;
	servaddr.sin_addr.s_addr = htonl(INADDR_ANY);	//htonl (h:host n:net)
	servaddr.sin_port = htons(8000);

	bind(fd, (struct sockaddr *)&servaddr, sizeof(servaddr));	//bind:绑定地址和端口
	listen(fd, 20);	//listen:把套接字置为被动模式

	while(1){
		int conn_fd, n;
		char buf[1024];
		struct sockaddr_in c_addr;	//定义一个结构体变量:客户端	传出参数
		socklen_t c_len = sizeof(c_addr);

		conn_fd = accept(fd, (struct sockaddr *)&c_addr, &c_len);	//监听
		while((n = read(conn_fd, buf, 1024)))
			write(conn_fd, buf, n);
		close(conn_fd);
	}

	return 0;
}

你可能感兴趣的:(server socket)