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

非凡软件站wordpress上传算流量吗

非凡软件站,wordpress上传算流量吗,邮件网站排名,做手机网站用什么程序好此项目是根据sylar框架实现#xff0c;是从零开始重写sylar#xff0c;也是对sylar丰富与完善 项目地址#xff1a;https://gitee.com/lzhiqiang1999/server-framework 简介 项目介绍#xff1a;实现了一个基于协程的服务器框架#xff0c;支持多线程、多协程协同调度是从零开始重写sylar也是对sylar丰富与完善 项目地址https://gitee.com/lzhiqiang1999/server-framework 简介 项目介绍实现了一个基于协程的服务器框架支持多线程、多协程协同调度支持以异步处理的方式提高服务器性能封装了网络相关的模块包括socket、http、servlet等支持快速搭建HTTP服务器或WebSokcet服务器。 详细内容日志模块使用宏实现流式输出支持同步日志与异步日志、自定义日志格式、日志级别、多日志分离等功能。线程模块封装pthread相关方法封装常用的锁包括信号量读写锁自旋锁等。IO协程调度模块基于ucontext_t实现非对称协程模型以线程池的方式实现多线程多协程协同调度同时依赖epoll实现了事件监听机制。定时器模块使用最小堆管理定时器配合IO协程调度模块可以完成基于协程的定时任务调度。hook模块将同步的系统调用封装成异步操作accept, recv, send等配合IO协程调度能够极大的提升服务器性能。Http模块封装了sokcet常用方法支持http协议解析客户端实现连接池发送请求服务器端实现servlet模式处理客户端请求支持单Reator多线程多Reator多线程模式的服务器。 Socket模块 1. 主要功能 对Linux下socket相关方法的封装包括bind、listen、connect、read/write系列等方法。支持快速创建TCP、UDP对应的Socket。 2. 功能演示 模拟一个请求百度的客户端并打印出响应 IPAddress::ptr addr Address::LookupAnyIPAddress(www.baidu.com:80); // 创建socket Socket::ptr socket Socket::CreateTCP(addr); // 连接 socket-connect(addr); //发送数据 const char buf[] GET / HTTP/1.1\r\n\r\n; int rt socket-send(buf, sizeof(buf)); if(rt 0) {LOG_INFO(g_logger) send fail;return; }//接收数据 std::string buffers; buffers.resize(4096); rt socket-recv(buffers[0], 4096); if(rt 0) {LOG_INFO(g_logger) recv fail;return; }LOG_INFO(g_logger) buffers;3. 模块介绍 3.1 Socket 对socket相关方法的封装包括以下内容 创建各种类型的套接字对象的方法TCP套接字UDP套接字Unix域套接字设置套接字选项比如超时参数bind/connect/listen方法实现绑定地址、发起连接、发起监听功能accept方法返回连入的套接字对象发送、接收数据的方法获取本地地址、远端地址的方法获取套接字类型、地址类型、协议类型的方法取消套接字读、写的方法 class Socket : public std::enable_shared_from_thisSocket, Noncopyable{public:typedef std::shared_ptrSocket ptr;typedef std::weak_ptrSocket weak_ptr;// 创建TCP Socket(满足地址类型)static Socket::ptr CreateTCP(johnsonli::Address::ptr address);// 创建UDP Socket(满足地址类型)static Socket::ptr CreateUDP(johnsonli::Address::ptr address);// 创建IPv4的TCP Socketstatic Socket::ptr CreateTCPSocket();// 创建IPv4的UDP Socketstatic Socket::ptr CreateUDPSocket();// 创建IPv6的TCP Socketstatic Socket::ptr CreateTCPSocket6();// 创建IPv6的UDP Socketstatic Socket::ptr CreateUDPSocket6();Socket(int family, int type, int protocol 0);virtual ~Socket();int64_t getSendTimeout(); // 获取发送超时时间(毫秒)void setSendTimeout(int64_t v); // 设置发送超时时间(毫秒)int64_t getRecvTimeout(); // 获取接受超时时间(毫秒)void setRecvTimeout(int64_t v); // 设置接受超时时间(毫秒)// 获取sockopt see getsockoptbool getOption(int level, int option, void* result, socklen_t* len);// 获取sockopt模板 see getsockopttemplateclass Tbool getOption(int level, int option, T result) {socklen_t length sizeof(T);return getOption(level, option, result, length);}// 设置sockopt see setsockoptbool setOption(int level, int option, const void* result, socklen_t len);// 设置sockopt模板 see setsockopttemplateclass Tbool setOption(int level, int option, const T value) {return setOption(level, option, value, sizeof(T));}/*** brief 接收connect链接* return 成功返回新连接的socket,失败返回nullptr* pre Socket必须 bind , listen 成功*/virtual Socket::ptr accept();/*** brief 绑定地址* param[in] addr 地址* return 是否绑定成功*/virtual bool bind(const Address::ptr addr);/*** brief 连接地址* param[in] addr 目标地址* param[in] timeout_ms 超时时间(毫秒)*/virtual bool connect(const Address::ptr addr, uint64_t timeout_ms -1);virtual bool reconnect(uint64_t timeout_ms -1);/*** brief 监听socket* param[in] backlog 未完成连接队列的最大长度* result 返回监听是否成功* pre 必须先 bind 成功*/virtual bool listen(int backlog SOMAXCONN);/*** brief 关闭socket*/virtual bool close();/*** brief 发送数据* param[in] buffer 待发送数据的内存* param[in] length 待发送数据的长度* param[in] flags 标志字* return* retval 0 发送成功对应大小的数据* retval 0 socket被关闭* retval 0 socket出错*/virtual int send(const void* buffer, size_t length, int flags 0);/*** brief 发送数据* param[in] buffers 待发送数据的内存(iovec数组)* param[in] length 待发送数据的长度(iovec长度)* param[in] flags 标志字* return* retval 0 发送成功对应大小的数据* retval 0 socket被关闭* retval 0 socket出错*/virtual int send(const iovec* buffers, size_t length, int flags 0);/*** brief 发送数据* param[in] buffer 待发送数据的内存* param[in] length 待发送数据的长度* param[in] to 发送的目标地址* param[in] flags 标志字* return* retval 0 发送成功对应大小的数据* retval 0 socket被关闭* retval 0 socket出错*/virtual int sendTo(const void* buffer, size_t length, const Address::ptr to, int flags 0);/*** brief 发送数据* param[in] buffers 待发送数据的内存(iovec数组)* param[in] length 待发送数据的长度(iovec长度)* param[in] to 发送的目标地址* param[in] flags 标志字* return* retval 0 发送成功对应大小的数据* retval 0 socket被关闭* retval 0 socket出错*/virtual int sendTo(const iovec* buffers, size_t length, const Address::ptr to, int flags 0);/*** brief 接受数据* param[out] buffer 接收数据的内存* param[in] length 接收数据的内存大小* param[in] flags 标志字* return* retval 0 接收到对应大小的数据* retval 0 socket被关闭* retval 0 socket出错*/virtual int recv(void* buffer, size_t length, int flags 0);/*** brief 接受数据* param[out] buffers 接收数据的内存(iovec数组)* param[in] length 接收数据的内存大小(iovec数组长度)* param[in] flags 标志字* return* retval 0 接收到对应大小的数据* retval 0 socket被关闭* retval 0 socket出错*/virtual int recv(iovec* buffers, size_t length, int flags 0);/*** brief 接受数据* param[out] buffer 接收数据的内存* param[in] length 接收数据的内存大小* param[out] from 发送端地址* param[in] flags 标志字* return* retval 0 接收到对应大小的数据* retval 0 socket被关闭* retval 0 socket出错*/virtual int recvFrom(void* buffer, size_t length, Address::ptr from, int flags 0);/*** brief 接受数据* param[out] buffers 接收数据的内存(iovec数组)* param[in] length 接收数据的内存大小(iovec数组长度)* param[out] from 发送端地址* param[in] flags 标志字* return* retval 0 接收到对应大小的数据* retval 0 socket被关闭* retval 0 socket出错*/virtual int recvFrom(iovec* buffers, size_t length, Address::ptr from, int flags 0);// 输出信息到流中virtual std::ostream dump(std::ostream os) const;virtual std::string toString() const;bool cancelRead(); // 取消读bool cancelWrite(); // 取消写 bool cancelAccept(); // 取消acceptbool cancelAll(); // 取消所有事件protected:void initSock(); // 设置socket属性void newSock(); // 创建socket m_sockfd socket()virtual bool init(int sock); // 初始化sock调用initSockprotected: int m_sockfd; /// socket句柄 int m_family; /// 协议簇 int m_type; /// 类型 int m_protocol; /// 协议 bool m_isConnected; /// 是否连接 Address::ptr m_localAddress; /// 本地地址 Address::ptr m_remoteAddress; /// 远端地址};// 流式输出socketstd::ostream operator(std::ostream os, const Socket sock); }
http://www.w-s-a.com/news/202098/

相关文章:

  • 企业网站制作公司有哪些太原网站建设 thinkphp3.2
  • 云集网站哪个公司做的百度竞价排名怎么做
  • 做网站公司赚钱吗网站建设英语翻译
  • 网络公司除了做网站产品设计作品
  • dede网站模板替换湘潭建设路街道网站
  • 东莞网站优化效果如何网络设计工作
  • 网站备案系统验证码出错的解决方案任丘建设银行网站
  • 个人博客建站wordpress叮当app制作
  • 网站式的公司记录怎么做二手书网站策划书
  • 营销型网站的建设重点是什么帝国程序和WordPress
  • 正能量网站推荐不需要下载巴中网站建设开发公司
  • 学生模拟网站开发西安seo平台
  • 免费的app推广平台免费网站seo
  • 建一个个人网站网站建设中小企业广西
  • 优惠券网站做淘客违规吗个人建网站运营.
  • 旅游网站制作建设华大基因 网站建设
  • sem推广竞价托管南京seo网站优化
  • 网站优化网站建站教程网站建设 成都
  • 网站 配色表html代码在线
  • 城乡和建设部建造师网站众筹平台网站建设
  • 外贸网站模板免费下载微网站制作软件
  • 一个新的网站怎么做宣传技术先进的网站建
  • 福建网站建设有限公司需求网站
  • 生物科技企业网站做的比较好的企业培训网站模板
  • 南京 高端网站建设网站备案密码怎么找回
  • 蛋糕店网站模板建设电子商务系统网站
  • 海口网站建设优化公司网站开发要加班吗
  • 建设一个网站需要注意哪些要求群晖的网站开发
  • 精通网站开发阅读网页视频下载慢怎么办
  • 网站标题的选择巴音郭楞库尔勒网站建设