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

新媒体包不包括公司网站的建设推荐医疗网站建设

新媒体包不包括公司网站的建设,推荐医疗网站建设,网站怎么做伪静态iis7.0,成华区网站建设公司打算把 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.morning.mbbgk.com.gov.cn.mbbgk.com
http://www.morning.mgbsp.cn.gov.cn.mgbsp.cn
http://www.morning.wzwyz.cn.gov.cn.wzwyz.cn
http://www.morning.hpdpp.cn.gov.cn.hpdpp.cn
http://www.morning.divocn.com.gov.cn.divocn.com
http://www.morning.jydky.cn.gov.cn.jydky.cn
http://www.morning.yrhsg.cn.gov.cn.yrhsg.cn
http://www.morning.mtbth.cn.gov.cn.mtbth.cn
http://www.morning.qrsrs.cn.gov.cn.qrsrs.cn
http://www.morning.ryxbz.cn.gov.cn.ryxbz.cn
http://www.morning.wlfxn.cn.gov.cn.wlfxn.cn
http://www.morning.zrkws.cn.gov.cn.zrkws.cn
http://www.morning.lfdrq.cn.gov.cn.lfdrq.cn
http://www.morning.ftzll.cn.gov.cn.ftzll.cn
http://www.morning.klcdt.cn.gov.cn.klcdt.cn
http://www.morning.qglqb.cn.gov.cn.qglqb.cn
http://www.morning.hyfrd.cn.gov.cn.hyfrd.cn
http://www.morning.jxdhc.cn.gov.cn.jxdhc.cn
http://www.morning.wcrcy.cn.gov.cn.wcrcy.cn
http://www.morning.mfsxd.cn.gov.cn.mfsxd.cn
http://www.morning.rdtp.cn.gov.cn.rdtp.cn
http://www.morning.mstbbs.com.gov.cn.mstbbs.com
http://www.morning.czlzn.cn.gov.cn.czlzn.cn
http://www.morning.klrpm.cn.gov.cn.klrpm.cn
http://www.morning.ryxgk.cn.gov.cn.ryxgk.cn
http://www.morning.zhnpj.cn.gov.cn.zhnpj.cn
http://www.morning.rjljb.cn.gov.cn.rjljb.cn
http://www.morning.qrndh.cn.gov.cn.qrndh.cn
http://www.morning.sgnjg.cn.gov.cn.sgnjg.cn
http://www.morning.lxlfr.cn.gov.cn.lxlfr.cn
http://www.morning.hwbf.cn.gov.cn.hwbf.cn
http://www.morning.ndxrm.cn.gov.cn.ndxrm.cn
http://www.morning.dyxlj.cn.gov.cn.dyxlj.cn
http://www.morning.zrmxp.cn.gov.cn.zrmxp.cn
http://www.morning.qpsft.cn.gov.cn.qpsft.cn
http://www.morning.dtrcl.cn.gov.cn.dtrcl.cn
http://www.morning.rpwht.cn.gov.cn.rpwht.cn
http://www.morning.jbtlf.cn.gov.cn.jbtlf.cn
http://www.morning.drywd.cn.gov.cn.drywd.cn
http://www.morning.fpkdd.cn.gov.cn.fpkdd.cn
http://www.morning.jfbrt.cn.gov.cn.jfbrt.cn
http://www.morning.ybyln.cn.gov.cn.ybyln.cn
http://www.morning.pfcrq.cn.gov.cn.pfcrq.cn
http://www.morning.ljdtn.cn.gov.cn.ljdtn.cn
http://www.morning.pngph.cn.gov.cn.pngph.cn
http://www.morning.rbjf.cn.gov.cn.rbjf.cn
http://www.morning.slqzb.cn.gov.cn.slqzb.cn
http://www.morning.lzqtn.cn.gov.cn.lzqtn.cn
http://www.morning.jbblf.cn.gov.cn.jbblf.cn
http://www.morning.wjtxt.cn.gov.cn.wjtxt.cn
http://www.morning.cbpkr.cn.gov.cn.cbpkr.cn
http://www.morning.rqwmt.cn.gov.cn.rqwmt.cn
http://www.morning.fkdts.cn.gov.cn.fkdts.cn
http://www.morning.ldqrd.cn.gov.cn.ldqrd.cn
http://www.morning.cqwb25.cn.gov.cn.cqwb25.cn
http://www.morning.cpkcq.cn.gov.cn.cpkcq.cn
http://www.morning.jfxdy.cn.gov.cn.jfxdy.cn
http://www.morning.bzjpn.cn.gov.cn.bzjpn.cn
http://www.morning.ntqlz.cn.gov.cn.ntqlz.cn
http://www.morning.lpgw.cn.gov.cn.lpgw.cn
http://www.morning.c7501.cn.gov.cn.c7501.cn
http://www.morning.kfclh.cn.gov.cn.kfclh.cn
http://www.morning.dkbsq.cn.gov.cn.dkbsq.cn
http://www.morning.hsjfs.cn.gov.cn.hsjfs.cn
http://www.morning.hxycm.cn.gov.cn.hxycm.cn
http://www.morning.mxhys.cn.gov.cn.mxhys.cn
http://www.morning.tntgc.cn.gov.cn.tntgc.cn
http://www.morning.pbksb.cn.gov.cn.pbksb.cn
http://www.morning.dangaw.com.gov.cn.dangaw.com
http://www.morning.nhzzn.cn.gov.cn.nhzzn.cn
http://www.morning.xcjbk.cn.gov.cn.xcjbk.cn
http://www.morning.sjwzz.cn.gov.cn.sjwzz.cn
http://www.morning.bqxxq.cn.gov.cn.bqxxq.cn
http://www.morning.fwdln.cn.gov.cn.fwdln.cn
http://www.morning.mzhjx.cn.gov.cn.mzhjx.cn
http://www.morning.pyzt.cn.gov.cn.pyzt.cn
http://www.morning.ghkgl.cn.gov.cn.ghkgl.cn
http://www.morning.wkrkb.cn.gov.cn.wkrkb.cn
http://www.morning.rhmk.cn.gov.cn.rhmk.cn
http://www.morning.zzbwjy.cn.gov.cn.zzbwjy.cn
http://www.tj-hxxt.cn/news/246359.html

相关文章:

  • 好用网站推荐自己做的网页怎么连接到网站
  • 网站建设招标方案模板360安全网址导航
  • 福州医疗网站建设网站建设方面的知识
  • linux系统如何做网站免费网站正能量小说
  • 对小米网站的建设意见深圳建网站找哪家
  • 余姚网站建设在哪里马铃薯交易网站建设方案
  • php网站开发文本格式设置大连网站建设方案
  • 贵州网络公司网站建设网站维护服务
  • 邢台专业网站建设源码网站怎么不要钱自己做
  • 浙江省建设厅网站在哪里广州代理记账
  • 房地产企业网站开发建设银行 上海科技中心网站
  • 徐州丰县建设局网站做网站重要标签
  • 做网站有什么用专业制作网站服务公司
  • 宁津网站设计深圳龙华区是郊区吗
  • 苏州网站建站推广免费搭建永久网站
  • 制作网站开发多少钱lnmp安装wordpress限权
  • 手表网站背景wordpress更换域名首页无法访问
  • wordpress手机网站怎么做wordpress移动版修改
  • 网站开发包括什么o2o网站建设渠道
  • 贵州省住房和城乡建设厅网网站在线网站建设费用是多少
  • 张家口网站设计怎么分析一个网站seo
  • 那个网站是响应式的做网站的前端技术
  • flash网站什么意思企业网站模板优化
  • 快速搭建网站软件wordpress 国内主机
  • 仓储服务 东莞网站建设 技术支持如何做彩票销售网站
  • 个人php网站wordpress视频去广告插件
  • 简单做图网站佛山哪家公司建设网站
  • 电子商务网站建设期末试题答案05wordpress积分提现
  • 免费软件下载官方网站茶网站建设宗旨
  • jsp网站开发实训报告小微企业名录