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

移动商城的推广方法百度seo优化排名

移动商城的推广方法,百度seo优化排名,h5页面怎么生成链接,东莞百度seo服务公司TCP并发服务器的多进程实现与多线程实现 一、 TCP并发服务器的多进程实现 代码 #include my_head.h#define SERVER_IP 192.168.125.11 // 服务器IP #define SERVER_PORT 6666 // 服务器端口// 子进程处理客户端信息函数 int deal_client_me…TCP并发服务器的多进程实现与多线程实现 一、 TCP并发服务器的多进程实现 代码 #include my_head.h#define SERVER_IP 192.168.125.11 // 服务器IP #define SERVER_PORT 6666 // 服务器端口// 子进程处理客户端信息函数 int deal_client_message(int new_sfd, struct sockaddr_in client_info); // 回调函数回收僵尸进程函数 void callBack_zembie(int sig);int main(int argc, const char *argv[]) {// 用信号的方式回收僵尸进程if (signal(SIGCHLD, callBack_zembie) 0){ERR_MSG(signal);return -1;}// 创建流式套接字int sfd socket(AF_INET, SOCK_STREAM, 0);if (sfd 0){ERR_MSG(socket);return -1;}// 待绑定的服务器的信息struct sockaddr_in server_info;server_info.sin_addr.s_addr inet_addr(SERVER_IP);server_info.sin_port htons(SERVER_PORT);server_info.sin_family AF_INET;// 绑定if (bind(sfd, (struct sockaddr *)server_info, sizeof(server_info)) 0){ERR_MSG(bind);return -1;}// 监听if (listen(sfd, 128) 0){ERR_MSG(listen);return -1;}// 客户端连接过来的信息struct sockaddr_in client_info;socklen_t len sizeof(client_info);// 用于接收客户端连接的文件描述符int new_sfd;// 子进程的 pidpid_t cpid -1;while (1){// 连接acceptnew_sfd accept(sfd, (struct sockaddr *)client_info, len);if (new_sfd 0){ERR_MSG(accept);return -1;}printf([%s : %d]已连接 new_fd %d \n, inet_ntoa(client_info.sin_addr),ntohs(client_info.sin_port), new_sfd);// 创建子进程用于处理接收的信息cpid fork();// 子进程进行处理if (0 cpid){// 关闭父进程的服务器文件描述符close(sfd);// 调用函数进行处理消息deal_client_message(new_sfd, client_info);// 关闭新创建的用于接收客户端传来信息的文件描述符close(new_sfd);// 结束进程当前进程为子进程exit(0);}else if (cpid 0){ERR_MSG(fork);return -1;}// 下边这部分是父进程的内容// 在此次循环中关闭新建的文件描述符因为下次循环又会创建了close(new_sfd);}// 关闭套接字close(sfd);return 0; }// 回调函数回收僵尸进程函数功能实现 void callBack_zembie(int sig) {// 回收僵尸进程资源while (waitpid(-1, NULL, WNOHANG) 0); }// 子进程处理客户端信息函数功能实现 int deal_client_message(int new_sfd, struct sockaddr_in client_info) {char buff[128];ssize_t res -1;while (1){bzero(buff, sizeof(buff));// 接收消息以阻塞方式接收res recv(new_sfd, buff, sizeof(buff), 0);if (res 0){ERR_MSG(recv);break;}else if (0 res){// 客户端掉线printf([%s : %d] 已掉线\n, inet_ntoa(client_info.sin_addr),ntohs(client_info.sin_port));break;}// 将消息输出printf([%s : %d][message : %s]\n, inet_ntoa(client_info.sin_addr),ntohs(client_info.sin_port), buff);// 判断客户端是否断开链接if (!strcmp(buff, exit)){printf([%s : %d] 断开链接\n, inet_ntoa(client_info.sin_addr),ntohs(client_info.sin_port));break;}strcat(buff, ---);// 处理消息(可以是回复)if (send(new_sfd, buff, sizeof(buff), 0) 0){ERR_MSG(send);break;}}// 关闭文件描述符close(new_sfd);return 0; }二、 TCP并发服务器的多线程实现 #include my_head.h#define SERVER_IP 192.168.125.11 // 服务器IP #define SERVER_PORT 6666 // 服务器端口struct client_information {int new_sfd;struct sockaddr_in info; };// 线程处理客户端信息函数 void *thread1(void *arg);int main(int argc, const char *argv[]) {// 创建流式套接字int sfd socket(AF_INET, SOCK_STREAM, 0);if (sfd 0){ERR_MSG(sfd);return -1;}// 服务器信息struct sockaddr_in server_info;server_info.sin_addr.s_addr inet_addr(SERVER_IP);server_info.sin_port htons(SERVER_PORT);server_info.sin_family AF_INET;// 绑定if (bind(sfd, (struct sockaddr *)server_info, sizeof(server_info)) 0){ERR_MSG(bind);return -1;}// 监听if (listen(sfd, 128) 0){ERR_MSG(listen);return -1;}// 客户端信息struct client_information client_info;socklen_t len sizeof(client_info.info);// 子线程号pthread_t tid;while (1){// 连接acceptclient_info.new_sfd accept(sfd, (struct sockaddr *)(client_info.info), len);if (client_info.new_sfd 0){ERR_MSG(accept);return -1;}printf([%s : %d]已连接 new_fd %d \n, inet_ntoa(client_info.info.sin_addr),ntohs(client_info.info.sin_port), client_info.new_sfd);// 创建子线程if (pthread_create(tid, NULL, thread1, client_info) 0){fprintf(stderr, 线程创建出错 __%d__\n, __LINE__);return -1;}// 将线程分离待线程结束后可以直接被操作系统回收pthread_detach(tid);}// 关闭套接字close(client_info.new_sfd);close(sfd);return 0; }// 线程处理客户端信息函数功能实现 void *thread1(void *arg) {struct client_information client_info *((struct client_information *)arg);ssize_t res -1;char buff[128];while (1){bzero(buff, sizeof(buff));// 接收客户端传来的信息res recv(client_info.new_sfd, buff, sizeof(buff), 0);if (res 0){ERR_MSG(recv);break;}else if (0 res){// 客户端掉线printf([%s : %d] 已掉线\n, inet_ntoa(client_info.info.sin_addr),ntohs(client_info.info.sin_port));break;}/** 处理回复 */// 将消息输出printf([%s : %d][message : %s]\n, inet_ntoa(client_info.info.sin_addr),ntohs(client_info.info.sin_port), buff);// 判断客户端是否退出if (!strcmp(buff, exit)){printf([%s : %d] 断开链接\n, inet_ntoa(client_info.info.sin_addr),ntohs(client_info.info.sin_port));break;}strcat(buff, ---);// 处理消息(可以是回复)if (send(client_info.new_sfd, buff, sizeof(buff), 0) 0){ERR_MSG(send);break;}}// 关闭文件描述符close(client_info.new_sfd);// 退出线程pthread_exit(NULL); }
http://www.huolong8.cn/news/206892/

相关文章:

  • tk网站免费58同城招聘网 找工作
  • 网站开发提供图片加载速度cpanel应用不显示wordpress
  • 揭阳专业网站设计公司wordpress 分类存档
  • python 做企业网站北京中信建设有限责任公司
  • 宁海县建设局网站下属单位深圳南山区网站建设
  • 怎么自己做淘宝网站淄博网站制作设计公司
  • 网站建设外包必须注意几点高陵网站建设
  • 网站怎么做伪静态iis7.0广州机械网站建设
  • 福田网站建设效果WordPress指定IP访问
  • 素材网站模板房源信息一般在哪里看
  • 做网站要遵守的基本原则wordpress应用教程 pdf
  • 厦门市城乡建设局网站泰州房产网
  • 做网站哪种语言好高端网站案例欣赏
  • 长沙全程网络营销哪家便宜seo排名优化软件有用
  • 广州网站推广建设电子商务网站建设参考书
  • 制作网站的成本规划宜春做网站 黑酷seo
  • 网站设计手机型企业网站管理系统的运维服务
  • 西安做网站公司有哪些?襄阳建设网站首页
  • 中国建设教育协会是个什么网站手工艺品网站建设
  • 宁波网站建设zj95苏州建设工程质量监督站网站
  • 江苏响应式网站建设哪里有舟山市住房和城乡建设局网站
  • 宜昌网站排名优化新开传奇网站超变
  • 花乡科技园区网站建设济南网络公司建站
  • 大连有什么好玩的地方保定seo推广公司
  • 长治网站建设案例开发网站公司排行榜
  • 外贸企业网站模版沈阳工程信息交易网
  • 广州开发网站技术主机 安装wordpress
  • 创建一个网站需要什么条件高端车品牌排行榜
  • 给网站做cdn网站google搜索优化
  • 模板网站首页设计小程序源码是什么意思