中学加强校园网站建设输入代码即可玩的小游戏

pingmian/2025/10/8 1:10:51/文章来源:
中学加强校园网站建设,输入代码即可玩的小游戏,北京建设工程主管部门网站,爱站网seo一、TCP多进程并发 1.地址快速重用 先退出服务端#xff0c;后退出客户端#xff0c;则服务端会出现以下错误#xff1a; 地址仍在使用中 解决方法#xff1a; /*地址快速重用*/ int flag1,len sizeof (int); if ( setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, 后退出客户端则服务端会出现以下错误 地址仍在使用中 解决方法 /*地址快速重用*/     int flag1,len sizeof (int);     if ( setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, flag, len) -1) {               perror(setsockopt);               exit(1);     } 2.多进程并发 1fork函数 #include stdio.h #include wait.h #include stdlib.hint main(int argc, char *argv[]) {pid_t pid fork();if(pid 0){perror(fork);exit(0);}else if(pid 0){printf(This is child process.\n);}else{printf(This is father process.\n);wait(NULL);}return 0; } 2多个客户端 代码演示 #include stdio.h #include sys/socket.h #include sys/types.h #include stdlib.h #include arpa/inet.h #include unistd.h #include string.h #include strings.h#define BACKLOG 5 void ClinetHandle(int newfd); int main(int argc, char *argv[]) {int fd, newfd;struct sockaddr_in addr, clint_addr;socklen_t addrlen sizeof(clint_addr);pid_t pid;if(argc 3){fprintf(stderr, %saddrport\n, argv[0]);exit(0);}/*创建套接字*/fd socket(AF_INET, SOCK_STREAM, 0);if(fd 0){perror(socket);exit(0);}addr.sin_family AF_INET;addr.sin_port htons( atoi(argv[2]) );if ( inet_aton(argv[1], addr.sin_addr) 0) {fprintf(stderr, Invalid address\n);exit(EXIT_FAILURE);}/*地址快速重用*/int flag1,len sizeof (int); if ( setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, flag, len) -1) { perror(setsockopt); exit(1); } /*绑定通信结构体*/if(bind(fd, (struct sockaddr *)addr, sizeof(addr) ) -1){perror(bind);exit(0);}/*设置套接字为监听模式*/if(listen(fd, BACKLOG) -1){perror(listen);exit(0);}while(1){/*接受客户端的连接请求生成新的用于和客户端通信的套接字*/newfd accept(fd, (struct sockaddr *)clint_addr, addrlen);if(newfd 0){perror(accept);exit(0);}printf(addr:%s port:%d\n, inet_ntoa(clint_addr.sin_addr), ntohs(clint_addr.sin_port) );if( (pid fork() ) 0){perror(fork);exit(0);}else if(pid 0){close(fd);ClinetHandle(newfd);exit(0);}elseclose(newfd);}close(fd);return 0; } void ClinetHandle(int newfd){int ret;char buf[BUFSIZ] {};while(1){//memset(buf, 0, BUFSIZ);bzero(buf, BUFSIZ); //初始化ret read(newfd, buf, BUFSIZ);if(ret 0){perror(read);exit(0);}else if(ret 0)break;elseprintf(buf %s\n, buf);}close(newfd); } 二、僵尸进程处理 #include stdio.h #include sys/socket.h #include sys/types.h #include stdlib.h #include arpa/inet.h #include unistd.h #include string.h #include strings.h #include signal.h #include sys/wait.h#define BACKLOG 5 void SigHandle(int sig){if(sig SIGCHLD){printf(client exited\n);wait(NULL);} } void ClinetHandle(int newfd); int main(int argc, char *argv[]) {int fd, newfd;struct sockaddr_in addr, clint_addr;socklen_t addrlen sizeof(clint_addr);#if 0struct sigaction act;act.sa_handler SigHandle;act.sa_flags SA_RESTART;sigemptyset(act.sa_mask);sigaction(SIGCHLD, act, NULL); #elsesignal(SIGCHLD, SigHandle); #endifpid_t pid;if(argc 3){fprintf(stderr, %saddrport\n, argv[0]);exit(0);}/*创建套接字*/fd socket(AF_INET, SOCK_STREAM, 0);if(fd 0){perror(socket);exit(0);}addr.sin_family AF_INET;addr.sin_port htons( atoi(argv[2]) );if ( inet_aton(argv[1], addr.sin_addr) 0) {fprintf(stderr, Invalid address\n);exit(EXIT_FAILURE);}/*地址快速重用*/int flag1,len sizeof (int); if ( setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, flag, len) -1) { perror(setsockopt); exit(1); } /*绑定通信结构体*/if(bind(fd, (struct sockaddr *)addr, sizeof(addr) ) -1){perror(bind);exit(0);}/*设置套接字为监听模式*/if(listen(fd, BACKLOG) -1){perror(listen);exit(0);}while(1){/*接受客户端的连接请求生成新的用于和客户端通信的套接字*/newfd accept(fd, (struct sockaddr *)clint_addr, addrlen);if(newfd 0){perror(accept);exit(0);}printf(addr:%s port:%d\n, inet_ntoa(clint_addr.sin_addr), ntohs(clint_addr.sin_port) );if( (pid fork() ) 0){perror(fork);exit(0);}else if(pid 0){close(fd);ClinetHandle(newfd);exit(0);}elseclose(newfd);}close(fd);return 0; } void ClinetHandle(int newfd){int ret;char buf[BUFSIZ] {};while(1){//memset(buf, 0, BUFSIZ);bzero(buf, BUFSIZ);ret read(newfd, buf, BUFSIZ);if(ret 0){perror(read);exit(0);}else if(ret 0)break;elseprintf(buf %s\n, buf);}close(newfd); } 三、TCP并发多线程 #include stdio.h #include sys/socket.h #include sys/types.h #include stdlib.h #include arpa/inet.h #include unistd.h #include string.h #include strings.h #include pthread.h#define BACKLOG 5void *ClinetHandle(void *arg); int main(int argc, char *argv[]) {int fd, newfd;struct sockaddr_in addr, clint_addr;pthread_t tid;socklen_t addrlen sizeof(clint_addr);if(argc 3){fprintf(stderr, %saddrport\n, argv[0]);exit(0);}/*创建套接字*/fd socket(AF_INET, SOCK_STREAM, 0);if(fd 0){perror(socket);exit(0);}addr.sin_family AF_INET;addr.sin_port htons( atoi(argv[2]) );if ( inet_aton(argv[1], addr.sin_addr) 0) {fprintf(stderr, Invalid address\n);exit(EXIT_FAILURE);}/*地址快速重用*/int flag1,len sizeof (int); if ( setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, flag, len) -1) { perror(setsockopt); exit(1); } /*绑定通信结构体*/if(bind(fd, (struct sockaddr *)addr, sizeof(addr) ) -1){perror(bind);exit(0);}/*设置套接字为监听模式*/if(listen(fd, BACKLOG) -1){perror(listen);exit(0);}while(1){/*接受客户端的连接请求生成新的用于和客户端通信的套接字*/newfd accept(fd, (struct sockaddr *)clint_addr, addrlen);if(newfd 0){perror(accept);exit(0);}printf(addr:%s port:%d\n, inet_ntoa(clint_addr.sin_addr), ntohs(clint_addr.sin_port) );pthread_create(tid, NULL, ClinetHandle, newfd); //创建线程pthread_detach(tid); //设置为分离属性}close(fd);return 0; } void *ClinetHandle(void *arg){int ret;char buf[BUFSIZ] {};int newfd *(int *)arg; //传参强转while(1){//memset(buf, 0, BUFSIZ);bzero(buf, BUFSIZ);ret read(newfd, buf, BUFSIZ);if(ret 0){perror(read);exit(0);}else if(ret 0)break;elseprintf(buf %s\n, buf);}printf(client exited\n);close(newfd);return NULL; } Makefile CCgcc CFLAGS-Wall all:client server server:server.c     $(CC) $^ -Wall -o $ -lpthread clean:     rm client server

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

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

相关文章

新开传奇网站大全江苏省国家示范校建设专题网站

分类目录:《深入理解强化学习》总目录 在文章《深入理解强化学习——马尔可夫决策过程:蒙特卡洛方法-[基础知识]》中我们介绍了利用蒙特卡洛方法计算马尔可夫决策过程价值的方法,本文将用代码定义一个采样函数。采样函数需要遵守状态转移矩阵…

兖州建设公司网站wordpress中文破解主题

文章目录 CentOS7安装部署MySQL80一、前言二、正文1.安装部署1)卸载 mariadb2)MySQL安装3)启动4)首次登录 2.允许所有主机连接3.修改密码4.my.cnf配置文件5.开启binlog6.密码校验策略7.密码过期8.表名大小写敏感9.最大连接数10.导…

网站备案期间怎么做外贸销售管理制度

进程是一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。一般来说,Linux系统会在进程之间共享程序代码和系统函数库,所以在任何时刻内存中都只有代码的一份拷贝。 1,ps命令 作用:ps命令主要用于查看系统中进程…

做网站标志有限颜色使用的吗北京通州住房和城乡建设部网站

目录 TSDF的基本原理 SLAM中TSDF建图的实现 TSDF的基本原理 TSDF建图,即使用截断符号距离函数(Truncated Signed Distance Function)的建图方法,是一种用于3D重建和机器人导航的技术。TSDF利用所谓的“截断有符号距离函数”来构…

android 网站开发夜深人不静免费看高清

实验室要求统一Linux版本,原来我用的是Ubuntu,现在我在的实验室是centos,我也就只能改了。实验室和个人不同,个人的Linux版本可能经常换,只要有新的版本出来,我就会去下载下来,在虚拟机里面试一…

安徽合肥网站制作苏州 网站建设 app

黑马程序员前端web入门:新浪新闻 几点学习到的: 设置li无圆点: list-style: none;设置a无下划线:text-decoration: none;a属于行内元素,高度hegiht不起作用,可以设置 display: block; 把它变成块元素。此时&#xff0c…

哈尔滨专业网站制作设计珠海市网站开发公司电话

QT线程的使用 循环中程序的等待 先看效果1 pro文件2 头文件3 源文件4 ui文件先看效果 1 pro文件 QT += concurrent2 头文件 #ifndef MAINWINDOW_H #define MAINWINDOW_H

怎么用个人电脑做网站临沂做公司网站

问题描述: 内存泄漏积累过多最终会导致内存溢出,当内存占用过大,进程会被killed掉。 解决过程: 在代码的运行阶段输出内存占用量,观察在哪一块存在内存剧烈增加或者显存异常变化的情况。但是在这个过程中要分级确认…

深圳专业网站建设服务建设银行网站最近都打不开吗

1.研究的背景 随着自动驾驶技术的不断发展,车道线的实时分割成为了自动驾驶系统中的重要任务之一。车道线的准确分割可以为自动驾驶系统提供重要的环境感知信息,帮助车辆进行准确的路径规划和决策。因此,开发一种高效准确的车道线实时分割系…

阿里云域名备案网站建设方案书舟山网站设计

Sword: SpringBlade前端UI项目,基于react 、ant design、dva、umi,用于快速构建系统中后台业务。 官网:https://bladex.cn Saber: SpringBlade前端UI项目,对现有的avue2.0、element-ui库进行二次封装。基于json驱动的模块配置&am…

东营网站建设那家好天津百度

uniapp开发 微信小程序 本地资源图片无法通过 WXSS 获取,可以使用网络图片,或者 base64,或者使用image标签。_uniapp 中的本地资源图片无法通过 wxss 获取,可以使用网络图片,或者 base64,或者_芒果大胖砸的博客-CSDN博客

电子商务网站建设报告怎么写oa系统服务器地址在哪里看

文章目录 9.1 选择合适的工作流9.1.1 基础知识讲解9.1.2 重点案例:为中等规模的 Python 项目选择 Feature Branch 工作流9.1.3 拓展案例 1:适应 Gitflow 工作流的大型项目9.1.4 拓展案例 2:使用 Forking 工作流的开源 Python 项目 9.2 定制化…

茶文化网站建设的可行性分析wordpress出不来安装界面

1. 官方下载地址 Documentation :: JMeter-Plugins.org 2.安装 将该插件的jar包移动到lib/ext下 3.重启JMeter就可以看到插件管理器 4. 安装,更新,删除插件 安装插件 删除插件 更新插件

网站服务器租用阿里云一年多少钱啊慕课网站开发

OpenSSL加密证书一般用于签名认证,含私钥和公钥。在Linux系统中,OpenSSL一般是已经安装好了,可以直接使用。而在Windows系统中,是需要安装使用的。 最近在使用支付平台时,用到了OpenSSL,鉴于此分享给大家&a…

给人做网站多少钱网站空间企业个人

本文目录 一、简介二、模型文件三、了解NSManagedObject对象四、CoreData中的核心对象五、代码实现六、打开CoreData的SQL语句输出开关七、创建NSManagedObject的子类 回到顶部一、简介 Core Data是iOS5之后才出现的一个框架,它提供了对象-关系映射(ORM)的功能&…

给上市公司做网站有什么用厦门做网站哪家公司好

Select语句的执行顺序 1、from 子句组装来自不同数据源的数据; 2、where 子句基于指定的条件对记录行进行筛选; 3、group by 子句将数据划分为多个分组; 4、使用聚集函数进行计算;AVG() SUM() MAX() MIN() COUNT() 5、使用 havin…

如何做网站数据库备份网上书店网页设计实训报告

目录 简介 1.拉取镜像 2.创建并启动容器 2.1创建目录 2.2启初始化一个容器用于导出配置文件和数据库,只挂载数据目录 2.3先将数据库文件和配置文件复制出来 2.4停止容器并删除容器 2.5创建完整的容器 3.愉快地使用 3.1示例: 3.2图片预览 3.3json…

电子商务与网站建设策划书甘肃省建筑工程建设监理公司网站

使用Sim control仿真自动驾驶 概述Sim control仿真自动驾驶启动DreamView仿真系统 实验目的福利活动 主页传送门:📀 传送 概述 自动驾驶汽车在实现落地应用前,需要经历大量的道路测试来验证算法的可行性和系统的稳定性,但道路测试…

网站开发如何引用函数电影网站怎么做优化

利用互联网实现小组合作,目前显然还有诸多不便,原因何在?许多人都在网上实现了互联,小组合作似乎应该有诸多便利。但为什么维护一个可供小组其他成员共享和编辑的文件夹依然困难重重?为什么如果大家不使用相同的即时通…

挂甲寺网站建设seo培训赚钱

概述 FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20、21号端口,其中端口20用于进行数据传输,端口21用于接受客户端发出的相关FTP命令与参数。FTP服务器普遍部署于内网中,具有容易搭建、方…