进程实现tcp服务器
来源:互联网 发布:cnc电脑编程教程 编辑:程序博客网 时间:2024/06/05 11:58
进程实现tcp服务器
#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 MY_PORT 3333int main(int argc ,char **argv){int listen_fd,accept_fd;struct sockaddr_in client_addr;int n;int nbytes; if((listen_fd=socket(AF_INET,SOCK_STREAM,0))<0) { printf("Socket Error:%s\n\a",strerror(errno)); exit(1); } bzero(&client_addr,sizeof(struct sockaddr_in)); client_addr.sin_family=AF_INET; client_addr.sin_port=htons(MY_PORT); client_addr.sin_addr.s_addr=htonl(INADDR_ANY); n=1; /* 如果服务器终止后,服务器可以第二次快速启动而不用等待一段时间 */ setsockopt(listen_fd,SOL_SOCKET,SO_REUSEADDR,&n,sizeof(int)); if(bind(listen_fd,(struct sockaddr *)&client_addr,sizeof(client_addr))<0) { printf("Bind Error:%s\n\a",strerror(errno)); exit(1); } listen(listen_fd,5); while(1) { accept_fd=accept(listen_fd,NULL,NULL); if((accept_fd<0)&&(errno==EINTR)) continue; else if(accept_fd<0) { printf("Accept Error:%s\n\a",strerror(errno)); continue; } if((n=fork())==0) { /* 子进程处理客户端的连接 */ char buffer[1024]; if((nbytes=read(accept_fd,buffer,1024))==-1) { fprintf(stderr,"Read Error:%s\n",strerror(errno)); exit(1); } buffer[nbytes]='\0';printf("Server received %s\n",buffer); close(listen_fd); close(accept_fd); exit(0); } else close(accept_fd);}}
0 0
- 进程实现tcp服务器
- TCP服务器的单进程实现
- 实现TCP并发服务器之一(多进程)
- Linux TCP协议使用进程实现并发服务器
- 用父子进程实现tcp客户端与服务器
- TCP server的实现,和多线程,多进程服务器
- 【网络】实现简单的TCP、UDP服务器、TCP多进程/多线程服务器
- TCP并发服务器之进程
- tcp多进程并发服务器
- TCP服务器客户端进程通信
- TCP多进程并发服务器
- 多进程多线程TCP服务器
- tcp进程实现
- 实现TCP服务器
- VC++实现TCP服务器
- 线程实现tcp服务器
- python实现tcp服务器
- TCP->多进程服务器->多进程服务器->线程池
- Linux 空间满问题分析
- 条款6:区别increment/decrement操作符的前置和后置形式
- 移动端H5性能优化
- Java学习记录--参数传递分析
- 使用Teleport下载网站
- 进程实现tcp服务器
- 查看Linux内核
- 图片PGM格式转化为JPG格式(MATLAB 实现)
- JSP学习 更改tomcat端口号 入门 九九乘法表
- STM32F103使用内部Flash保存参数
- JS跨域(ajax跨域、iframe跨域)解决方法及原理详解
- hdu1028Ignatius and the Princess III
- php的简单使用1
- Rancher v1.2震撼发布:更优秀的全栈化容器部署与管理平台