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

合肥有什么好的网站建设公司好石家庄网络推广

合肥有什么好的网站建设公司好,石家庄网络推广,网站推广方式主要通过,工信部icp备案查询系统打算把 tinyWebServer 重写成跨平台#xff08;Windows and Linux#xff09;的。 这里首先需要跨平台的 sokcet#xff0c;主要参考 尹圣雨 的 TCP/IP 网络编程 来着#xff1a; 代码写的有些笨#xff0c;欢迎批评#xff1a; 首先是一个 socket 类#xff0c;主要…打算把 tinyWebServer 重写成跨平台Windows and Linux的。 这里首先需要跨平台的 sokcet主要参考 尹圣雨 的 TCP/IP 网络编程 来着 代码写的有些笨欢迎批评 首先是一个 socket 类主要封装了 常用操作通过宏定义分别针对 Linux 和 Windows 处理 #ifndef _SOCKET_H_ #define _SOCKET_H_#ifdef _WIN32 #include winsock2.h #else #include sys/socket.h #include netinet/in.h #include fcntl.h #include unistd.h #include arpa/inet.h #endif#include cstdio #include cstring #include cstdlib#include iostream #include sstream #include exception #include stdexcept #include string#ifdef _WIN32using socklen_t int; #elseusing SOCKET int; //文件描述符static constexpr int INVALID_SOCKET -1; static constexpr int SOCKET_ERROR -1; #endifclass Socket {public:Socket():Socket(PF_INET,SOCK_STREAM,IPPROTO_TCP){}Socket(int domain, int type, int protocal);Socket(SOCKET socket): m_socket(socket){}~Socket() noexcept;void bind(sockaddr *addr, socklen_t addrlen);void listen(int queueLen 5);Socket accept(sockaddr *addr, socklen_t *addrlen);void connect(sockaddr *addr, socklen_t len);SOCKET getSocket() { return m_socket; }private:SOCKET m_socket; };class WinSockMgr { public:static WinSockMgr *getInstance() {static WinSockMgr instance;return instance;} private:WinSockMgr();~WinSockMgr() noexcept; };#endif这里 WinSockMgr 主要用来管理 WinSock 的一些启动销毁工作。 然后是实现这里直接报错就抛异常 #include socket.hnamespace { #ifdef _WIN32WinSockMgr* winSockMgr WinSockMgr::getInstance(); #endif }std::string getErrorStr(const char *str) {std::ostringstream errStr;errStr str with errno [ errno ];return errStr.str(); }Socket::Socket(int domain, int type, int protocal) try //这里的 try 纯属多此一举 {m_socket socket(domain,type,protocal);if (INVALID_SOCKET m_socket) {std::string errStr getErrorStr(socket() failed!);std::cerr errStr std::endl;throw std::runtime_error(errStr);} } catch(const std::runtime_error e) {throw; }Socket::~Socket() { #ifdef _WIN32if (0 ! closesocket(m_socket)) {std::cerr closesocket() failed! std::endl;} #elseclose(m_socket); #endif }void Socket::bind(sockaddr *addr,socklen_t len) {if (0 ! ::bind(m_socket,addr,len)) {std::string errStr getErrorStr(bind() failed!);std::cerr errStr std::endl;throw std::runtime_error(errStr);} }// queueLen 5 void Socket::listen(int queueLen) {// 第二个参数是 请求等待的数量if (0 ! ::listen(m_socket,queueLen)) {std::string errStr getErrorStr(listen() failed!);std::cerr errStr std::endl;throw std::runtime_error(errStr);} }Socket Socket::accept(sockaddr *addr, socklen_t *addrlen) {SOCKET socket ::accept(m_socket,addr,addrlen);if (INVALID_SOCKET socket) {std::string errStr getErrorStr(accept() failed!);std::cerr errStr std::endl;throw std::runtime_error(errStr);}return Socket{socket}; }void Socket::connect(sockaddr *addr, socklen_t addrlen) {if (SOCKET_ERROR ::connect(m_socket,addr,addrlen)) {std::string errStr getErrorStr(connect() failed!);std::cerr errStr std::endl;throw std::runtime_error(errStr);} }WinSockMgr::WinSockMgr() { #ifdef _WIN32WSADATA wsaData;int ret WSAStartup(MAKEWORD(2,2),wsaData);if (ret ! 0) {std::string errStr getErrorStr(WSAStartup() failed!);std::cerr errStr with return: [ ret ] std::endl;throw std::runtime_error(errStr);} #endif }WinSockMgr::~WinSockMgr() { #ifdef _WIN32if (0 ! WSACleanup()) {std::string errStr getErrorStr(WSACleanup() failed!);std::cerr errStr std::endl;} #endif }代码写的不够简洁还需要修改但是先这样吧。 主要是简单的封装也没啥好讲的。
http://www.ho-use.cn/article/10815911.html

相关文章:

  • 安徽建设工程实名制网站怎样制作一个自己的网站
  • 有好点的网站建设公司吗wordpress4.8.3中文版
  • 网站首页的模块布局枣庄手机网站建设电话
  • 北京网站优化团队app 网站 优势
  • 网站建设服务商怎么收费泉州建设网站公司哪家好
  • 建什么网站容易挣钱网站建设实验报告模板
  • 安徽省建设厅到底哪个网站桥梁建设 网站
  • 建设网站策划书门户网站建设和运行招标公告
  • 佛山网站建设天博与建设通相关的网站
  • 网站搭建同一页不同按钮不同页面网站搭建哪家好
  • 昌平上门做网站那云服务器和网站空间
  • 怎么查网站备案信息查询wordpress 外观
  • 乌海市建设局网站医院网页设计
  • 网站灰色杭州建站官网建设
  • python用于网站开发作风建设活动网站
  • 模板网站劣势保定网站制作企业
  • 网站运营及推广方案免费获取源码的网站
  • 自己创建一个网站需要多少钱山西常见网站建设推荐优化
  • 深圳专业网站优化公司报价wordpress手动安装插件
  • wordpress外链本地化优化网站专题
  • 设计网站建设公司广西人才网
  • 网站可分为哪两种类型注册深圳公司的费用
  • 商丘市网站建设公司wordpress虚拟商品销售
  • 污网站公司网站微信推广营销
  • 有哪些做场景秀的网站可以直接做ppt的网站
  • 昆明培训网站建设网站群管理平台建设
  • 游戏试玩网站怎么做wordpress 随机显示
  • 淘宝客网站开发平台厦门建设局官网首页
  • 做电影资源网站服务器怎么选怎么样用手机做网站关键词
  • 制作公司网站的步骤平台设计方法