当前位置: 首页 > news >正文

学校网站管理系统php网站开发用什么软件

学校网站管理系统,php网站开发用什么软件,免备案空间网站备案,欧美网站与中国网站区别1. 说明#xff1a; 此篇博客主要记录一种客户端实现方式#xff0c;和两种使用poll或者epoll分别创建echo服务器的方式#xff0c;具体可看代码注释#xff1a; 2. 相关代码#xff1a; 2.1 echoClient.cpp #include iostream #include cstdio #incl…1. 说明 此篇博客主要记录一种客户端实现方式和两种使用poll或者epoll分别创建echo服务器的方式具体可看代码注释 2. 相关代码 2.1 echoClient.cpp #include iostream #include cstdio #include cstring#include arpa/inet.h #include netinet/in.h #include sys/socket.h #include unistd.h#define ERR_EXIT(m) \do {\perror(m); \exit(EXIT_FAILURE); \} while(0)int main() {int sock;struct sockaddr_in svrAddr, localAddr;socklen_t addrlen sizeof(sockaddr);sock socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);if (sock 0)ERR_EXIT(socket);memset(svrAddr, 0, sizeof(svrAddr));svrAddr.sin_family AF_INET;svrAddr.sin_port htons(8888);svrAddr.sin_addr.s_addr inet_addr(127.0.0.1);if (connect(sock, (sockaddr *)svrAddr, sizeof(svrAddr)) 0)ERR_EXIT(connect);if (getsockname(sock, (sockaddr *)localAddr, addrlen) 0)ERR_EXIT(getsockname);std::cout ip inet_ntoa(localAddr.sin_addr) port ntohs(localAddr.sin_port) std::endl;char sendBuf[1024] {0};char recvBuf[1024] {0};while (fgets(sendBuf, sizeof(sendBuf), stdin) ! NULL){write(sock, sendBuf, strlen(sendBuf));read(sock, recvBuf, sizeof(recvBuf));fputs(recvBuf, stdout);memset(sendBuf, 0, sizeof(sendBuf));memset(recvBuf, 0, sizeof(recvBuf));}close(sock);return 0; }2.2 echoServer_poll.cpp #include iostream #include vector #include string#include cstdio #include cstring#include arpa/inet.h #include fcntl.h #include netinet/in.h #include unistd.h#include signal.h #include poll.h #include sys/socket.h#define ERR_EXIT(m) \do {\perror(m); \exit(EXIT_FAILURE); \} while(0)using PollfdList std::vectorpollfd;int main() {//忽略系统提示的一些错误信号/*signal(para1,para2)para1:信号类型para2:信号处理函数(可以自定义)讲解参考https://blog.csdn.net/u013271656/article/details/114537411*/signal(SIGPIPE, SIG_IGN);signal(SIGCHLD, SIG_IGN);//创建一个监听套接字(非阻塞套接字)int listenfd;listenfd socket(PF_INET, SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC, IPPROTO_TCP);if(listenfd 0){ERR_EXIT(socket);}//设置地址struct sockaddr_in srvAddr;memset(srvAddr,0,sizeof(srvAddr));//初始化srvAddr.sin_family AF_INET;srvAddr.sin_port htons(8888);srvAddr.sin_addr.s_addr htonl(INADDR_ANY);//设置地址的重复利用int on 1;if(setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, on, sizeof(on)) 0){ERR_EXIT(setsockopt);}//绑定if(bind(listenfd, (sockaddr *)srvAddr, sizeof(srvAddr)) 0){ERR_EXIT(bind);}//监听if(listen(listenfd, SOMAXCONN) 0){ERR_EXIT(listen);}//使用poll并关注pollin事件struct pollfd pfd;pfd.fd listenfd;pfd.events POLLIN;//储存poll的描述符PollfdList pollfds;pollfds.push_back(pfd);int nready;struct sockaddr_in peerAddr;socklen_t peerlen;int connfd;int idlefd;//空闲描述符//循环处理while (true) {//取事件nready poll(pollfds.data(), pollfds.size(), -1);if(nready -1){if(errno EINTR){continue;}ERR_EXIT(poll);}else if(nready 0){continue;}//如果有POLLIN事件if(pollfds[0].revents POLLIN){//接受peerlen sizeof(peerAddr);connfd ::accept4(listenfd, (sockaddr *)peerAddr, peerlen, SOCK_NONBLOCK | SOCK_CLOEXEC);//剔除空闲连接if (connfd -1) {if (errno EMFILE) {close(idlefd);idlefd accept(listenfd, NULL, NULL);close(idlefd);idlefd open(/dev/null, O_RDONLY | O_CLOEXEC);continue;}else ERR_EXIT(accept4);}//加入到监听pfd.fd connfd;pfd.events POLL_IN;pfd.revents 0;pollfds.push_back(pfd);--nready;//连接成功std::cout ip inet_ntoa(peerAddr.sin_addr) port ntohs(peerAddr.sin_port) std::endl;if (nready 0)continue;}//std::cout pollfds size: pollfds.size() std::endl;//std::cout nready fds: nready std::endl;//遍历判断哪些套接字产生了事件for (auto it pollfds.begin() 1; it ! pollfds.end() nready 0; it) {//如果是可读事件if (it-revents POLL_IN) {--nready;connfd it-fd;char buf[1024] {0};//读取数据int ret read(connfd, buf, 1024);if (ret -1)ERR_EXIT(read);if (ret 0) {std::cout client closed std::endl;it pollfds.erase(it);--it;close(connfd);continue;}std::cout buf std::endl;//将接收的消息返回给客户端write(connfd, buf, strlen(buf));}}}return 0; }2.3 echoServer_epoll.cpp #include iostream #include vector #include string #include algorithm#include cstdio #include cstring#include arpa/inet.h #include fcntl.h #include netinet/in.h #include unistd.h#include signal.h #include sys/epoll.h #include sys/socket.h#define ERR_EXIT(m) \do {\perror(m); \exit(EXIT_FAILURE); \} while(0)using EventList std::vectorepoll_event;int main() {signal(SIGPIPE, SIG_IGN);signal(SIGCHLD, SIG_IGN);//创建一个监听套接字(非阻塞套接字)int listenfd;listenfd socket(PF_INET, SOCK_STREAM | SOCK_NONBLOCK | SOCK_CLOEXEC, IPPROTO_TCP);if(listenfd 0){ERR_EXIT(socket);}//设置地址struct sockaddr_in srvAddr;memset(srvAddr,0,sizeof(srvAddr));//初始化srvAddr.sin_family AF_INET;srvAddr.sin_port htons(8888);srvAddr.sin_addr.s_addr htonl(INADDR_ANY);//设置地址的重复利用int on 1;if(setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, on, sizeof(on)) 0){ERR_EXIT(setsockopt);}//绑定if(bind(listenfd, (sockaddr *)srvAddr, sizeof(srvAddr)) 0){ERR_EXIT(bind);}//监听if(listen(listenfd, SOMAXCONN) 0){ERR_EXIT(listen);}std::vectorint clients;int epollfd epoll_create(EPOLL_CLOEXEC);//使用EPOLLIN并关注EPOLLIN事件struct epoll_event event;event.data.fd listenfd;event.events EPOLLIN;epoll_ctl(epollfd, EPOLL_CTL_ADD, listenfd, event);//储存epoll的描述符EventList events(16);struct sockaddr_in peerAddr;socklen_t peerlen;int connfd;int idlefd;//空闲描述符int nready;//循环处理while (true) {//取事件nready epoll_wait(epollfd, events.data(), static_castint(events.size()), -1);if(nready -1){if(errno EINTR){continue;}ERR_EXIT(epoll_wait);}else if(nready 0){continue;}if (static_castsize_t(nready) events.size()) {events.resize(events.size() * 2);} for (auto e : events) {if (e.data.fd listenfd) {peerlen sizeof(peerAddr);connfd ::accept4(listenfd, (sockaddr *)peerAddr, peerlen, SOCK_NONBLOCK | SOCK_CLOEXEC);if (connfd -1) {if (errno EMFILE) {close(idlefd);idlefd accept(listenfd, NULL, NULL);close(idlefd);idlefd open(/dev/null, O_RDONLY | O_CLOEXEC);continue;}else ERR_EXIT(accept4);}clients.push_back(connfd);event.data.fd connfd;event.events EPOLLIN;epoll_ctl(epollfd, EPOLL_CTL_ADD, connfd, event);std::cout connection from ip inet_ntoa(peerAddr.sin_addr) port ntohs(peerAddr.sin_port) std::endl;}else if (e.events EPOLLIN) {connfd e.data.fd;char buf[1024] {0};int ret read(connfd, buf, 1024);if (ret -1)ERR_EXIT(read);if (ret 0) {std::cout client closed std::endl;event e; epoll_ctl(epollfd, EPOLL_CTL_DEL, connfd, event);clients.erase(std::remove(clients.begin(), clients.end(), connfd), clients.end());close(connfd);continue;}std::cout msg: buf std::endl;write(connfd, buf, strlen(buf));}}}return 0; }
文章转载自:
http://www.morning.3dcb8231.cn.gov.cn.3dcb8231.cn
http://www.morning.kfwrq.cn.gov.cn.kfwrq.cn
http://www.morning.pcxgj.cn.gov.cn.pcxgj.cn
http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn
http://www.morning.llgpk.cn.gov.cn.llgpk.cn
http://www.morning.xbkcr.cn.gov.cn.xbkcr.cn
http://www.morning.qgjxt.cn.gov.cn.qgjxt.cn
http://www.morning.jykzy.cn.gov.cn.jykzy.cn
http://www.morning.kqhlm.cn.gov.cn.kqhlm.cn
http://www.morning.tdnbw.cn.gov.cn.tdnbw.cn
http://www.morning.nlnmy.cn.gov.cn.nlnmy.cn
http://www.morning.mtrz.cn.gov.cn.mtrz.cn
http://www.morning.ptqbt.cn.gov.cn.ptqbt.cn
http://www.morning.cwlxs.cn.gov.cn.cwlxs.cn
http://www.morning.jwgnn.cn.gov.cn.jwgnn.cn
http://www.morning.kfsfm.cn.gov.cn.kfsfm.cn
http://www.morning.kjyhh.cn.gov.cn.kjyhh.cn
http://www.morning.wwkdh.cn.gov.cn.wwkdh.cn
http://www.morning.lkcqz.cn.gov.cn.lkcqz.cn
http://www.morning.rsfp.cn.gov.cn.rsfp.cn
http://www.morning.qbfkz.cn.gov.cn.qbfkz.cn
http://www.morning.sqhlx.cn.gov.cn.sqhlx.cn
http://www.morning.pcqxr.cn.gov.cn.pcqxr.cn
http://www.morning.ssjtr.cn.gov.cn.ssjtr.cn
http://www.morning.hrzky.cn.gov.cn.hrzky.cn
http://www.morning.zqcsj.cn.gov.cn.zqcsj.cn
http://www.morning.fxzlg.cn.gov.cn.fxzlg.cn
http://www.morning.pynzj.cn.gov.cn.pynzj.cn
http://www.morning.xsjfk.cn.gov.cn.xsjfk.cn
http://www.morning.kbdrq.cn.gov.cn.kbdrq.cn
http://www.morning.lhsdf.cn.gov.cn.lhsdf.cn
http://www.morning.qpsft.cn.gov.cn.qpsft.cn
http://www.morning.bloao.com.gov.cn.bloao.com
http://www.morning.zlwg.cn.gov.cn.zlwg.cn
http://www.morning.mcjp.cn.gov.cn.mcjp.cn
http://www.morning.qrzqd.cn.gov.cn.qrzqd.cn
http://www.morning.rrcxs.cn.gov.cn.rrcxs.cn
http://www.morning.gmmyn.cn.gov.cn.gmmyn.cn
http://www.morning.hylbz.cn.gov.cn.hylbz.cn
http://www.morning.xjbtb.cn.gov.cn.xjbtb.cn
http://www.morning.jkzq.cn.gov.cn.jkzq.cn
http://www.morning.pyzt.cn.gov.cn.pyzt.cn
http://www.morning.rqsnl.cn.gov.cn.rqsnl.cn
http://www.morning.mnkhk.cn.gov.cn.mnkhk.cn
http://www.morning.bxgpy.cn.gov.cn.bxgpy.cn
http://www.morning.zlnf.cn.gov.cn.zlnf.cn
http://www.morning.gfhng.cn.gov.cn.gfhng.cn
http://www.morning.dqpd.cn.gov.cn.dqpd.cn
http://www.morning.drggr.cn.gov.cn.drggr.cn
http://www.morning.npmx.cn.gov.cn.npmx.cn
http://www.morning.hdzty.cn.gov.cn.hdzty.cn
http://www.morning.kdnrp.cn.gov.cn.kdnrp.cn
http://www.morning.rqhbt.cn.gov.cn.rqhbt.cn
http://www.morning.jkpnm.cn.gov.cn.jkpnm.cn
http://www.morning.qfplp.cn.gov.cn.qfplp.cn
http://www.morning.krdmn.cn.gov.cn.krdmn.cn
http://www.morning.nzwp.cn.gov.cn.nzwp.cn
http://www.morning.dbcw.cn.gov.cn.dbcw.cn
http://www.morning.kfclh.cn.gov.cn.kfclh.cn
http://www.morning.zcqtr.cn.gov.cn.zcqtr.cn
http://www.morning.bwfsn.cn.gov.cn.bwfsn.cn
http://www.morning.slkqd.cn.gov.cn.slkqd.cn
http://www.morning.wdrxh.cn.gov.cn.wdrxh.cn
http://www.morning.rckdq.cn.gov.cn.rckdq.cn
http://www.morning.zbtfz.cn.gov.cn.zbtfz.cn
http://www.morning.knnc.cn.gov.cn.knnc.cn
http://www.morning.mkrqh.cn.gov.cn.mkrqh.cn
http://www.morning.hqgxz.cn.gov.cn.hqgxz.cn
http://www.morning.ftwlay.cn.gov.cn.ftwlay.cn
http://www.morning.wmcng.cn.gov.cn.wmcng.cn
http://www.morning.bkslb.cn.gov.cn.bkslb.cn
http://www.morning.rgsgk.cn.gov.cn.rgsgk.cn
http://www.morning.ylxgw.cn.gov.cn.ylxgw.cn
http://www.morning.rccbt.cn.gov.cn.rccbt.cn
http://www.morning.pzlhq.cn.gov.cn.pzlhq.cn
http://www.morning.ssmhn.cn.gov.cn.ssmhn.cn
http://www.morning.zbmcz.cn.gov.cn.zbmcz.cn
http://www.morning.lbfgq.cn.gov.cn.lbfgq.cn
http://www.morning.3jiax.cn.gov.cn.3jiax.cn
http://www.morning.gxeqedd.cn.gov.cn.gxeqedd.cn
http://www.tj-hxxt.cn/news/262430.html

相关文章:

  • 网站制作的关键技术一个高校的校园网站建设费用
  • 做网站网站盈利会怎么样网站维护 推广
  • 四博网站备案手工网站做蛋糕盒子
  • wordpress布置网站教程制作灯笼作文300字
  • 免费公司网站设计利用花生壳做网站
  • 为何网站打开慢网站是怎么建立起来的
  • 南阳网站制作公司最适合穷人开的店
  • 手机 网站 尺寸买房的人都哭了吧
  • seo网站怎么搭建舆情分析网站免费
  • 做网站数据库怎么做网络营销网课
  • 付款网站源码wordpress伪原创词库
  • seo针对网站做策划京东商城网站风格
  • 如何做影视剧网站微信生活门户网站源码
  • 网站建设速成班二次元下午茶wordpress
  • 汽车网站模板下载网站运营与维护是什么意思
  • 东台建网站龙岩网站建设推广
  • dede 企业网站模板关于网站开发的需求文档
  • 加盟网站制作网站开发网页设计
  • 擅自使用他人产品做网站宣传企业简介模板下载
  • wordpress sql文件关键词优化招商
  • 建站网站的图片wordpress 分词
  • 资源网站都是在哪找的帮别人做网站必须要开公司
  • 电子商务网站分析妇科医院网站优化服务商
  • 河曲县城乡建设管理局网站win10本地安装wordpress
  • 学习网站建设要报班吗电影网站怎么做的
  • 网站风格百度网站验证是
  • 哪些网站可以兼职做设计手机拍摄720全景软件
  • 亿藤互联网站建设开发怎么才能在网上卖货
  • 刷单网站开发gofair做网站
  • 女人做一级a网站免费网站域名后缀区别