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

网站建设公司哪家好速找盛世传媒wordpress 目录下拉框

网站建设公司哪家好速找盛世传媒,wordpress 目录下拉框,经典设计产品,惠阳住房与规划建设局网站本项目就是基于TCP网络通信搭建的。 TCP: 客户端#xff1a;socket(),connect(). 服务端#xff1a;socket(),bind(),listen(),accept(). 下面代码就是对原生API网络套接字的封装。需要熟悉原生API网络套接字接口。 下面这段代码#xff0c;没什么好讲的#xff0c;就不…本项目就是基于TCP网络通信搭建的。 TCP: 客户端socket(),connect(). 服务端socket(),bind(),listen(),accept(). 下面代码就是对原生API网络套接字的封装。需要熟悉原生API网络套接字接口。 下面这段代码没什么好讲的就不再讲了。下面代码会涉及文件描述符的相关设置我会专出一篇文章进行讲解。 #define MAX_LISTEN 1024 class Socket {private:int _sockfd;public:Socket():_sockfd(-1) {}Socket(int fd): _sockfd(fd) {}~Socket() { Close(); }int Fd() { return _sockfd; }//创建套接字bool Create() {// int socket(int domain, int type, int protocol)_sockfd socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);if (_sockfd 0) {ERR_LOG(CREATE SOCKET FAILED!!);return false;}return true;}//绑定地址信息bool Bind(const std::string ip, uint16_t port) {struct sockaddr_in addr;addr.sin_family AF_INET;addr.sin_port htons(port);addr.sin_addr.s_addr inet_addr(ip.c_str());socklen_t len sizeof(struct sockaddr_in);// int bind(int sockfd, struct sockaddr*addr, socklen_t len);int ret bind(_sockfd, (struct sockaddr*)addr, len);if (ret 0) {ERR_LOG(BIND ADDRESS FAILED!);return false;}return true;}//开始监听bool Listen(int backlog MAX_LISTEN) {// int listen(int backlog)int ret listen(_sockfd, backlog);if (ret 0) {ERR_LOG(SOCKET LISTEN FAILED!);return false;}return true;}//向服务器发起连接bool Connect(const std::string ip, uint16_t port) {struct sockaddr_in addr;addr.sin_family AF_INET;addr.sin_port htons(port);addr.sin_addr.s_addr inet_addr(ip.c_str());socklen_t len sizeof(struct sockaddr_in);// int connect(int sockfd, struct sockaddr*addr, socklen_t len);int ret connect(_sockfd, (struct sockaddr*)addr, len);if (ret 0) {ERR_LOG(CONNECT SERVER FAILED!);return false;}return true;}//获取新连接int Accept() {// int accept(int sockfd, struct sockaddr *addr, socklen_t *len);int newfd accept(_sockfd, NULL, NULL);//不需要获取客户端信息 就可以将他们置NULLif (newfd 0) {ERR_LOG(SOCKET ACCEPT FAILED!);return -1;}return newfd;}//接收数据ssize_t Recv(void *buf, size_t len, int flag 0) {// ssize_t recv(int sockfd, void *buf, size_t len, int flag);ssize_t ret recv(_sockfd, buf, len, flag);if (ret 0) {//EAGAIN 当前socket的接收缓冲区中没有数据了在非阻塞的情况下才会有这个错误//EINTR 表示当前socket的阻塞等待被信号打断了if (errno EAGAIN || errno EINTR) {return 0;//表示这次接收没有接收到数据}ERR_LOG(SOCKET RECV FAILED!!);return -1;}return ret; //实际接收的数据长度}ssize_t NonBlockRecv(void *buf, size_t len) {return Recv(buf, len, MSG_DONTWAIT); // MSG_DONTWAIT 表示当前接收为非阻塞。}//发送数据ssize_t Send(const void *buf, size_t len, int flag 0) {// ssize_t send(int sockfd, void *data, size_t len, int flag);ssize_t ret send(_sockfd, buf, len, flag);if (ret 0) {if (errno EAGAIN || errno EINTR) {return 0;}ERR_LOG(SOCKET SEND FAILED!!);return -1;}return ret;//实际发送的数据长度}ssize_t NonBlockSend(void *buf, size_t len) {if (len 0) return 0;return Send(buf, len, MSG_DONTWAIT); // MSG_DONTWAIT 表示当前发送为非阻塞。}//关闭套接字void Close() {if (_sockfd ! -1) {close(_sockfd);_sockfd -1;}}//创建一个服务端连接bool CreateServer(uint16_t port, const std::string ip 0.0.0.0, bool block_flag false) {//1. 创建套接字2. 绑定地址3. 开始监听4. 设置非阻塞 5. 启动地址重用if (Create() false) return false;if (block_flag) NonBlock();if (Bind(ip, port) false) return false;if (Listen() false) return false;ReuseAddress();return true;}//创建一个客户端连接bool CreateClient(uint16_t port, const std::string ip) {//1. 创建套接字2.指向连接服务器if (Create() false) return false;if (Connect(ip, port) false) return false;return true;}//设置套接字选项---开启地址端口重用void ReuseAddress() {// int setsockopt(int fd, int leve, int optname, void *val, int vallen)int val 1;setsockopt(_sockfd, SOL_SOCKET, SO_REUSEADDR, (void*)val, sizeof(int));val 1;setsockopt(_sockfd, SOL_SOCKET, SO_REUSEPORT, (void*)val, sizeof(int));}//设置套接字阻塞属性-- 设置为非阻塞void NonBlock() {//int fcntl(int fd, int cmd, ... /* arg */ );int flag fcntl(_sockfd, F_GETFL, 0);fcntl(_sockfd, F_SETFL, flag | O_NONBLOCK);} };
http://www.hkea.cn/news/14352828/

相关文章:

  • 知名自助建站平台wordpress怎么使用
  • 济南网站建设价格安徽省教育局网站建设方案
  • 帝国cms做招聘网站淘宝网站小视频怎么做的
  • 宁波那家公司做网站好平面设计网站知乎
  • 仙居住房和城乡建设部网站wordpress 数据表合并
  • 手机免费创建网站的软件最新公告哈尔滨
  • 网站建设科研申报书wordpress 安装的时候是英文
  • 商务网站模板免费下载制作游戏网站
  • 《网站建设》项目实训报告广州seo优化排名推广
  • 卫生监督 网站建设方案百度代理公司怎么样
  • 高端网站建设浩森宇特做中医诊所网站
  • 辽宁同鑫建设有限公司网站做我的世界缩略图的网站
  • 红动中国免费素材网站网络营销策划的内容
  • 太平保险网站自己做网站要学什么
  • 有专业做网站c2c模式在我国开始于1999年的
  • 从那些方面建设网站做国外购物的网站怎么发货
  • 自己弄个网站中山哪里有做网站
  • 免费公司介绍网站怎么做深圳网站seo设计
  • 昆山网站建设怎么样报网站开发培训班
  • 物流网站做那个好住房与城乡建设部网站 黑龙江
  • 李贤威wordpress建站教程成都住建局官网住建扬尘监测
  • 人事怎么做招聘网站比对分析欧美网站设计特点
  • 辽宁省建设工程信息网官网新网站有哪些做农产品的网站
  • 深圳专业画册设计机构南京seo推广
  • 网站建设 软件开发的公司seo教程论坛
  • 网站建设公司如何推广wordpress模板的网站_网页字体怎么修改?
  • 听完米课做的网站网上国网app推广效果
  • 广州黄埔网站制作山东大标网络
  • 手机网站开发开发wordpress主题 ux
  • 网站上的超链接怎么做重庆电力建设公司网站