这是网络编程的小练习,在Linux下用socket,epoll实现服务器端与客户端的通信。
代码如下:
服务器端:
#include"func.h"
//用进程池实现服务器端向客户端并行传输文件
int main()
{
int sfd=socket(AF_INET,SOCK_STREAM,0);
struct sockaddr_in seraddr,cliaddr;//cliaddr用于accept函数
int ret;
int len_client=sizeof(cliaddr);
seraddr.sin_family=AF_INET;
seraddr.sin_port=htons(2000);
seraddr.sin_addr.s_addr=inet_addr("192.168.13.128");
ret=bind(sfd,(struct sockaddr*)&seraddr,sizeof(seraddr));//绑定IP和端口号
if(ret==-1){
perror("bind");
return -1;
}
listen(sfd,10);//开始监听
//构造进程池
int epfd=epoll_create(1);
struct epoll_event event,evs[3];
memset(&event,0,sizeof(event));
event.data.fd=sfd;
event.events=EPOLLIN;
epoll_ctl(epfd,EPOLL_CTL_ADD,sfd,&event);//注册sfd
memset(&