#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類新增網...