阿里网站建设需要准备什么律师网站建设推广

web/2025/10/8 7:51:55/文章来源:
阿里网站建设需要准备什么,律师网站建设推广,做网站那个php好用,广州万户网络多进程并发服务器 设计流程 框架一#xff08;使用信号回收僵尸进程#xff09; void handler(int sig) {while(waitpid(-1, NULL, WNOHANG) 0); }int main() {//回收僵尸进程siganl(17, handler);//创建服务器监听套接字 serverserver socket();//给服务器地址信息…多进程并发服务器 设计流程 框架一使用信号回收僵尸进程 void handler(int sig) {while(waitpid(-1, NULL, WNOHANG) 0); }int main() {//回收僵尸进程siganl(17, handler);//创建服务器监听套接字 serverserver socket();//给服务器地址信息结构体赋值并绑定bind();//监听指定端口设置监听队列listen();while(1){//创建与客户端通信的套接字client accept();//创建子进程if(fork() 0){//关闭拷贝的服务器套接字close(server);while(1){//接收消息recv();//发送消息send();}//通信结束关闭套接字close(client);//退出进程exit(0);}//关闭父进程的通信套接字close(client);}//服务器关闭close(server); }实例 #include stdio.h #include stdlib.h #include string.h #include unistd.h #include sys/stat.h #include sys/types.h #include sys/socket.h #include netinet/in.h #include arpa/inet.h #include sys/select.h #include sys/wait.h #include time.h #include fcntl.h #include pthread.h #include semaphore.h #include signal.h #include sys/ipc.h #include sys/msg.h #include sys/shm.h #include sys/sem.h #include errno.h#define LOG(s) printf([%s] {%s:%d} %s \n, __DATE__, __FILE__, __LINE__, s);void cil(int client, struct sockaddr_in caddr);void handler(int sig) {while(waitpid(-1, NULL, WNOHANG) 0); }int main(int argc, char *argv[]) {//回收僵尸进程signal(17, handler);//创建服务器int server -1;if((server socket(AF_INET, SOCK_STREAM, 0)) -1){LOG(socket error);return -1;}//给服务器地址信息结构体赋值并绑定struct sockaddr_in saddr {0};saddr.sin_family AF_INET;saddr.sin_port htons(8888);saddr.sin_addr.s_addr htonl(INADDR_ANY);if(bind(server, (struct sockaddr*)saddr, sizeof(saddr)) -1){LOG(bind error);return -1;}//监听指定端口设置监听队列if(listen(server, 5) -1){LOG(listen error);return -1;}puts(Tcp server start success);int client -1;struct sockaddr_in caddr {0};socklen_t len sizeof(caddr);pid_t pid -1;while(1){//创建与客户端通信的套接字if((client accept(server, (struct sockaddr*)caddr, len)) -1){LOG(accpet error);return -1;}printf([%s/%d] client已上线\n, inet_ntoa(caddr.sin_addr), ntohl(caddr.sin_port));//创建子进程if((pid fork()) 0){LOG(fork error);return -1;}else if(pid 0){cil(client, caddr);exit(0);}close(client);}close(server);return 0; }void cil(int client, struct sockaddr_in caddr) {char buf[128] ;int res 0;while(1){bzero(buf, sizeof(buf));if((res read(client, buf, sizeof(buf))) 0){LOG(read error);break;}else if(res 0){printf([%s/%d] client已下线\n, inet_ntoa(caddr.sin_addr), ntohl(caddr.sin_port));close(client);break;}printf([%s/%d] client: %s\n, inet_ntoa(caddr.sin_addr), ntohl(caddr.sin_port), buf);bzero(buf, sizeof(buf));strcpy(buf, ok);if(write(client, buf, sizeof(buf)) 0){LOG(write error);break;}}} 框架二使用孤儿进程机制避免僵尸进程产生 int main() {//创建服务器监听套接字 serverserver socket();//给服务器地址信息结构体赋值并绑定bind();//监听指定端口设置监听队列listen();while(1){//创建子进程if((pid fork()) 0){//子进程创建用于与客户端通信的clientclient accept();//创建孙进程if(pid fork() 0){while(1){//孙进程负责与客户端通信recv();send();}//通信结束关闭套接字close(client);//退出进程exit(0);}//子进程else if(pid 0){//关闭多余的文件描述符close(server);close(client);//退出子进程exit(0);}}//父进程else if(pid 0){//回收子进程while(waitpid() pid)}}//关闭文件描述符close(server); }实例 #include stdio.h #include stdlib.h #include string.h #include unistd.h #include sys/stat.h #include sys/types.h #include sys/socket.h #include netinet/in.h #include arpa/inet.h #include sys/select.h #include sys/wait.h #include time.h #include fcntl.h #include pthread.h #include semaphore.h #include signal.h #include sys/ipc.h #include sys/msg.h #include sys/shm.h #include sys/sem.h #include errno.h#define LOG(s) printf([%s] {%s:%d} %s\n, __DATE__, __FILE__, __LINE__, s);void deal_cil_msg(int client, struct sockaddr_in caddr);int main(int argc, char *argv[]) {//创建服务器socketint server 0;if((server socket(AF_INET, SOCK_STREAM, 0)) -1){LOG(socket error);return -1;}//绑定服务器IP和端口号//给地址信息结构体赋值struct sockaddr_in saddr {0};saddr.sin_family AF_INET;saddr.sin_port htons(8888);saddr.sin_addr.s_addr htonl(INADDR_ANY);if(bind(server, (struct sockaddr*)saddr, sizeof(saddr)) -1){LOG(bind error);return -1;}//监听对应的端口号if(listen(server, 5) -1){LOG(listen error);return -1;}puts(server start success);//创建用于与客户端通信的socketstruct sockaddr_in caddr {0};int client 0;socklen_t asize sizeof(caddr);pid_t pid -1;int status 0;while(1){//父进程只负责生儿子pid fork();if(pid 0){LOG(fork error);return -1;}//子进程负责创建通信socketif(pid 0){//创建用于与客户端通信的socketif((client accept(server, (struct sockaddr*)caddr, asize)) -1){LOG(accept error);return -1;}printf([%s/%d]client已上线\n, inet_ntoa(caddr.sin_addr), ntohs(caddr.sin_port));//孙进程负责通信pid fork();if(pid 0){LOG(fork error);return -1;}else if(pid 0){deal_cil_msg(client, caddr);close(client);exit(0);}else if(pid 0){close(server);close(client);//退出子进程exit(0);}}else if(pid 0){printf(wait child %d\n, pid);//父进程等待子进程结束准备收尸while(waitpid(pid, status, 0) pid){printf(Parent is over - child: %d, status %x\n, pid, status);}}}//关闭文件描述符close(server);return 0; }void deal_cil_msg(int client, struct sockaddr_in caddr) {//接收消息char buf[128] ;while(1){int len 0;bzero(buf, sizeof(buf));if((len recv(client, buf, sizeof(buf), 0)) 0){ LOG(recv error);}else if(len 0){printf([%s/%d]client已下线\n, inet_ntoa(caddr.sin_addr), ntohs(caddr.sin_port));break;}printf([%s/%d]client: %s\n, inet_ntoa(caddr.sin_addr), ntohs(caddr.sin_port), buf);bzero(buf, sizeof(buf));//发送消息strcpy(buf, ok);write(client, buf, len);}} 多线程并发服务器 设计流程 //线程参数结构体 typedef struct {int client;struct sockaddr_in caddr; } Client_msg;int main() {//创建服务器监听套接字 serverserver socket();//给服务器地址信息结构体赋值并绑定bind();//监听指定端口设置监听队列listen();while(1){//创建用于与客户端通信的套接字client accpet();//创建线程pthread_create();while(1){//读写//关闭文件描述符//退出线程}//解离线程pthread_detach();}//关闭文件描述符close(server); }实例 #include stdio.h #include stdlib.h #include string.h #include unistd.h #include sys/stat.h #include sys/types.h #include sys/socket.h #include netinet/in.h #include arpa/inet.h #include sys/select.h #include sys/wait.h #include time.h #include fcntl.h #include pthread.h #include semaphore.h #include signal.h #include sys/ipc.h #include sys/msg.h #include sys/shm.h #include sys/sem.h #include errno.h#define LOG(s) printf([%s] {%s:%d} %s \n, __DATE__, __FILE__, __LINE__, s);void* cil(void* arg);//线程参数结构体 typedef struct {int client;struct sockaddr_in caddr; } Cli_msg;int main(int argc, char *argv[]) {//创建服务器监听分套接字 serverint server -1;if((server socket(AF_INET, SOCK_STREAM, 0)) -1){LOG(socket error);return -1;}//给服务器地址信息结构体赋值并绑定struct sockaddr_in saddr {0};saddr.sin_family AF_INET;saddr.sin_port htons(8899);saddr.sin_addr.s_addr htonl(INADDR_ANY);if(bind(server, (struct sockaddr*)saddr, sizeof(saddr)) -1){LOG(bind error);return -1;}//监听端口if(listen(server, 5) -1){LOG(listen error);return -1;}puts(tcp server start success);struct sockaddr_in caddr {0};socklen_t len sizeof(caddr);pthread_t tid -1;int client -1;Cli_msg cli_msg;while(1){//创建用于与客户端通信的套接字 clientif((client accept(server, (struct sockaddr*)caddr, len)) -1){LOG(accept error);return -1;}printf([%s/%d]client已上线\n, inet_ntoa(caddr.sin_addr), ntohs(caddr.sin_port));cli_msg.client client;cli_msg.caddr caddr;//创建线程if(pthread_create(tid, NULL, cil, cli_msg) ! 0){LOG(pthread_create error);return -1;}pthread_detach(tid);}close(server);return 0; }void* cil(void* arg) {int client ((Cli_msg*)arg)-client;struct sockaddr_in caddr ((Cli_msg*)arg)-caddr;char buf[128] ;int res 0;while(1){bzero(buf, sizeof(buf));if((res read(client, buf, sizeof(buf))) 0){LOG(read error);break;}else if(res 0){printf([%s/%d]client已下线\n, inet_ntoa(caddr.sin_addr), ntohs(caddr.sin_port));close(client);pthread_exit(NULL);}printf([%s/%d]client: %s\n, inet_ntoa(caddr.sin_addr), ntohs(caddr.sin_port), buf);bzero(buf, sizeof(buf));strcpy(buf, ok);if(write(client, buf, sizeof(buf)) 0){LOG(write error);break;}}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/88944.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浙江省建设部网站建设投资公司网站

目录 Linux环境变量配置 Linux读取环境变量 Linux环境变量配置方法一:export PATH Linux环境变量配置方法二:vim ~/.bashrc Linux环境变量配置方法三:vim ~/.bash_profile Linux环境变量配置方法四:vim /etc/bashrc Linux环境变量…

北京 网站开发 大兴html5网站有哪些

目录 0100 系统环境0200 下载0300 安装0400 服务管理0401 关闭、启动、重启服务0402 查看服务状态 0500 查看配置文件0600 账号管理0601 添加账号0602 删除账号0603 修改密码0604 忘记root密码 0700 自动备份0800 远程访问 0100 系统环境 [rootlocalhost ~]# cat /proc/versio…

岐山县住房和城市建设局网站大宗商品电子交易平台

1、简介 在容器中的Bean要实例化为对象有三种方式 1、构造方法 2、静态工厂 3、实例工厂 4、实现工厂接口 2、构造方法 构造方法实例化Bean即是直接通过构造方法创建对象 <bean id"bookDao" class"com.wn.spring.dao.impl.BookDaoImpl"/> 当不存在…

0基础学网站建设做网站怎么更新静态页

背景 随着文本生成图像的语言模型兴起&#xff0c;SolidUI想帮人们快速构建可视化工具&#xff0c;可视化内容包括2D,3D,3D场景&#xff0c;从而快速构三维数据演示场景。SolidUI 是一个创新的项目&#xff0c;旨在将自然语言处理&#xff08;NLP&#xff09;与计算机图形学相…

焦溪翠冠梨做的网站企业网站推广的方法有哪些

2019独角兽企业重金招聘Python工程师标准>>> 在Ubuntu 13.04下的安装eclipse 一、eclipse安装过程 首先确保在安装eclipse之前已经安装好Java虚拟机 1. eclipse官网下载压缩包 下载地址&#xff1a;http://www.eclipse.org/downloads/download.php?file/technology…

网站建设好了怎么弄手机网站建设成安企业做网站推广

目录 什么是 Harbor &#xff1f; 一、Harbor 的优势 二、Harbor 架构构成 三、Core services 这是 Harbor 的核心功能 什么是 Harbor &#xff1f; Harbor 是 VMware 公司开源的企业级 Docker Registry 项目&#xff0c;其目标是帮助用户迅速搭建一个企业级的 Docker Reg…

建站平台软件永城市专业做网站

对于手游开发者来说&#xff0c;更新版本往往意味着非常复杂的过程&#xff0c;你需要根据反馈做更新、测试、提交然后等待审核&#xff0c;而由于不需要客户端依赖&#xff0c;页游往往是快速测试游戏版本的最佳途径&#xff0c;很多人可能都知道Unity 5可以再不用Unity Web P…

公司网站开发实训报告数据库服务器

教育点击右上方蓝字关注金石教育金石教育青岛站推送青岛教育资讯&#xff0c;关注孩子成长关注教育主讲人——段莲1、金石教育首席学习规划师&#xff1a;在中考规划行业&#xff0c;段莲老师已经深入研究多年&#xff0c;了解最新的中考数据&#xff0c;并且能够把握住每个数据…

建设网站外国人可搜到商城系统app开发

> 掘金编辑提醒&#xff1a;本文疑似有误&#xff0c;参考 听说「99% 的人都理解错了 HTTP 中 GET 与 POST 的区别」 之前好几次面试都被问到post和get有什么区别&#xff0c;肯定很多同学和我一样说了一大堆什么post比get安全&#xff0c;get比post传的少乱起八糟这样的答案…

昆明做一个公司网站多少费用东台网站设计

在使用SQLAlchemy进行数据库操作时&#xff0c;Session是对数据库交互的主要接口之一。在Session中执行查询时&#xff0c;可以通过不同的方法来添加查询条件&#xff0c;从而筛选出符合要求的记录。以下是一些常见的Session查询中添加条件。 1. 使用filter_by方法 filter_by…

保定市做网站wordpress评论框制作

背景 因项目需要&#xff0c;我们服务每天都需要通过SFTP协议来对接上下游进行文件传输&#xff0c;但是对于一些大文件&#xff0c;在与第三方公司的服务器对接过程中很可能会因为网络问题或上下游服务器性能问题导致文件上传或者下载被中断&#xff0c;每次重试都需要重新对…

如何设计好网站深圳专业网站建设公司

微软发布了Entity Framework Core2.1&#xff0c;为EF开发者带来了很多期待已久的特性。EF Core 2.1增加了对SQL GROUP BY的支持&#xff0c;支持延迟加载和数据种子等。EF Core 2.1的第一个重要新增特性是将GroupBy操作符翻译成包含GROUP BY子句的SQL。缺乏这种支持被认为是EF…

有什么免费开发网站建设软件品牌推广方案

目录 1. Gitlab命令行修改管理员密码 2. Gitlab服务管理 3. 公司的开发代码提交处理流程 4. Gitlab 备份与恢复 数据备份 测试数据恢复 5. 邮箱配置 1. Gitlab命令行修改管理员密码 [roottty01 ~]# gitlab-rails console -e production # 启动GitLab的Rails控制…

saas建站平台wordpress的pingsu主题

Linux namespaces 介绍 namespaces是Linux内核用来隔离内核资源的方式。通过namespaces可以让一些进程只能看到与自己相关的那部分资源。而其它的进程也只能看到与他们自己相关的资源。这两拨进程根本感知不到对方的存在。而它具体的实现细节是通过Linux namespaces来实现的。 …

网站建设的文章php网站代做

‍ 嘉诚信息案例 本项目案例由嘉诚信息投递并参与数据猿与上海大数据联盟联合推出的《2024中国数智化转型升级创新服务企业》榜单/奖项评选。 大数据产业创新服务媒体 ——聚焦数据 改变商业 随着信息时代的迅猛发展&#xff0c;消防人员正面临前所未有的知识爆炸挑战。为了高…

西部数码做的网站打不开python如何与wordpress

Flink 中的时间语义 时间语义&#xff1a; EventTime&#xff1a;事件创建时间&#xff1b;Ingestion Time&#xff1a;数据进入Flink的时间&#xff1b;Processing Time&#xff1a;执行操作算子的本地系统时间&#xff0c;与机器无关。不同的时间语义有不同的应用场合&#x…

如何创建微信小程序商城新网站应该怎么做seo

用lambda表达式实现Runnable lambda表达式替换了原来匿名内部类的写法&#xff0c;没有了匿名内部类繁杂的代码实现&#xff0c;而是突出了&#xff0c;真正的处理代码。最好的示例就是 实现Runnable 的线程实现方式了: 用() -> {}代码块替代了整个匿名内部类 Test public …

推荐系统网站开发企业门户网站 php

所需文件xampp 集成服务器(本文使用Apache2.4MySQLPHP7.4.3)vscodeXdebugphp-debug 插件配置Xdebug1. 下载Xdebug插件 (直接去 https://xdebug.org/download.php下载php对应版本的插件)如果不知道如何选取版本&#xff0c;则如下Step 1&#xff1a;获取本地php版本信息 (利用ph…

白名单 网站什么网站可以做美食

项目背景 在全球经济发展的大背景下&#xff0c;矿产资源作为工业的“粮食”和“血液”&#xff0c;其合理开发与有效管理对于国家的经济发展、能源安全和工业稳定供应具有不可替代的作用。然而&#xff0c;随着资源的日益紧张和环境保护要求的提高&#xff0c;传统的矿产资源…

口碑好的网站建设方法有哪些服装网站搭建计划书

前段时间编译一个引用自己写的静态库的程序时老是出现链接时的多个重定义的错误&#xff0c;而自己的代码明明没有重定义这些东西&#xff0c;譬如&#xff1a; LIBCMT.lib(_file.obj) : error LNK2005: ___initstdio already defined in libc.lib(_file.obj) LIBCMT.lib(_fi…