網路通訊 epoll

2021-08-28 01:17:40 字數 2064 閱讀 6489

#include "head.h"

/*功能:將傳入的檔案描述符進行非阻塞處理

*newfd:需要處理發檔案描述符

*返回值:空

*/void set_nonblock(int newfd)

/*功能:將檔案描述符功能進行修改

*epollid:控制代碼描述符

*newfd:需要更改事件的描述符

*a:讀或寫

*b:是否開啟et模式

*返回值:空

*/void mod_fd(int epollid,int newfd,bool a,bool b)

/*功能:將檔案描述符加入epoll控制代碼描述符中,由控制代碼描述符樹管理,並將描述符置為可讀,選擇是否開啟et模式

*epollid:控制代碼描述符

*newfd:需要由控制代碼描述符統一管理的新描述符

*a:true 或 false 開啟et模式

*返回值:空

*/void add_fd(int epollid,int newfd,bool a)

epoll_ctl(epollid,epoll_ctl_add,newfd,&eve);

set_nonblock(newfd);

}/*功能:lt模式下的讀寫

*epollid:控制代碼檔案描述符

*sockid:socket檔案描述符

*ret:正在發生的事件個數

*eve:事件結構體位址

*返回值:空

*/void epoll_lt(int epollid,int sockid,int ret,struct epoll_event *eve)

else if(eve[i].events &epollin)

if(ret == 0)

printf("來自客戶端:%s\n",buf);

}else

}}/*功能:et模式下的讀寫

*epollid:控制代碼檔案描述符

*sockid:socket檔案描述符

*ret:正在發生的事件個數

*eve:事件結構體位址

*返回值:空

*/void epoll_et(int epollid,int sockid,int ret,struct epoll_event *eve)

else if(eve[i].events & epollin)

close(tmpid);

break;

}if(ret == 0)

printf("來自客戶端:%s\n",buf);

}mod_fd(epollid,tmpid,false,true);

}else if(eve[i].events & epollout)

else

}}/*功能:繫結傳入的埠與ip返回乙個socket的檔案描述符

*ip:ip位址

*port:埠號

*返回值:socket的檔案描述符

*/int server_init(char *ip,char *port)

/*功能:主函式

*argc:命令字串個數

*argv:命令字串的位址

*返回值:int型別

*/int main (int argc,char *argv)

int sockid = server_init(argv[1],argv[2]);

printf("sockid--->%d\n",sockid);

struct epoll_event eve[max_eve];

bzero(eve,max_eve);

int epollid = epoll_create(5);

printf("epollid--->%d\n",epollid);

if(epollid < 0)

sys_error("epoll_create failed");

add_fd(epollid,sockid,true);

printf("listen ok\n");

while(1)

close(sockid);

return 0;

}

C 網路通訊

c 網路通訊 一 伺服器端程式 10.17 1.建立伺服器端socket 1 使用socket類 建立伺服器socket物件 socket objs new socket 引數 使用ipendpoint類設定伺服器ip位址和埠號 或使用dns類 ipaddress serip ipaddress.p...

Winsock網路通訊

winsock網路通訊 這裡我希望和大家 一下winsock網上通訊的程式,由於網際網路的普及,越來越多的程式具有了在網上與其他程式通訊的功能.其實所有這些功能都建立在winsock介面之上,應用程式執行大多數網路通訊的基本物件稱為套介面或軟插口 socket 使用mfc winsocket類新增網...

Winsock網路通訊

winsock網路通訊 這裡我希望和大家 一下winsock網上通訊的程式,由於網際網路的普及,越來越多的程式具有了在網上與其他程式通訊的功能.其實所有這些功能都建立在winsock介面之上,應用程式執行大多數網路通訊的基本物件稱為套介面或軟插口 socket 使用mfc winsocket類新增網...