TCP循环服务器 代码tcpser

来源:互联网 发布:身份证假软件下载 编辑:程序博客网 时间:2024/06/05 19:39
#include <stdlib.h> 
#include <stdio.h> 
#include <errno.h> 
#include <string.h> 
#include <netdb.h> 
#include <sys/types.h> 
#include <netinet/in.h> 
#include <sys/socket.h> 


#define PORT  1234
int main()
{
int sockfd, newfd;
struct sockaddr_in  serv_addr;
struct sockaddr_in  cli_addr;
char buf[1024];
int len;
int new_size;


//1.socket
if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1)
{
printf("sock error!\n");
exit(1);
}
//2.bind
bzero(&serv_addr,sizeof(struct sockaddr_in)); // 初始化,置0
serv_addr.sin_family = AF_INET;
serv_addr.sin_addr.s_addr = inet_addr("192.168.1.229");
serv_addr.sin_port = htons(PORT);


if((bind(sockfd,(struct sockaddr *)&serv_addr, sizeof(struct sockaddr)))== -1)
{
printf("bind error!\n");
exit(1);
}
//3.lisetn
if((listen(sockfd, 5)) == -1)
{
printf("listrn error!\n");
exit(1);
}
//4.accept
while(1)
{
new_size = sizeof(struct sockaddr);
if((newfd = accept(sockfd,(struct sockaddr *)&cli_addr, &new_size )) == -1)
{
printf("accept error!\n");
exit(1);
}
//5.read
len = read(newfd, buf,1024);
if(len < 0)
{

printf("read error!\n");
exit(1);
}
buf[len] = '\0';
printf("serv recv is : %s\n", buf);
//6.close
close(newfd);
}
close(sockfd);
return 0;
}
0 0