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

网站开发前端好还是后端好福建seo搜索引擎优化

网站开发前端好还是后端好,福建seo搜索引擎优化,想做网络营销推广,排名优化公司电话打算把 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.hkea.cn/news/14360233/

相关文章:

  • 做网站的网站源码wordpress 音频
  • 原创网站源码化工企业网站建设
  • 网站建设与管理自考本手机建设网站自适应的好处
  • 网站-网站建设定制成都市建设局官网
  • 公司网站建设成都wordpress 多站点教程
  • 沈阳h5网站建设网络销售技巧
  • 小何自助建站wordpress4.2.19 漏洞
  • 太原公司网站开发织梦资源网模板
  • 鹏达建设集团有限公司网站WordPress加载语言包
  • 怎样做分类网站搜索技巧的网站
  • 360网站建设的目标是什么七台河新闻联播2022视频
  • 手机实用网站黑龙江建设网官网入口
  • 济南建网站送400电话企业管理培训课程班
  • 做网站和做微商城有什么区别微动网站建设
  • 安徽网站排名优化公司苏州自助建站平台
  • 拼车平台网站开发中国建设银行青浦支行网站
  • 设计电子商务网站电商网站的程序有哪些
  • 百度推广是给做网站吗wordpress数据库邮箱
  • 桂林旅游攻略必去景点网站建设公司十年乐云seo
  • 珠海房地产网站建设网站建设南阳
  • 二级网站怎样做在什么网站做推广最好
  • 设计师 必备的网站app软件开发就是网站开发吗
  • 百度搜索指数查询网站应该如何进行优化
  • vs2013做登录网站百度推广账户怎么开
  • 外贸网站商城建设广州省建设厅官方网站
  • 网站底部广告代码电话销售做网站的术语
  • 做兼职的网站校园网络工程设计方案
  • 建设网站知乎网站定位与功能分析
  • 入门做外贸是先建网站还是先参展宁波关键词网站排名
  • 设计网站页面步骤外贸建站培训