IO网络5.0

思维导图

使用select实现TCP客户端的并发

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <myhead.h>#define SER_PORT 8888 		//服务器端口号
#define SER_IP  "192.168.122.61" 	//服务器客户端//客户端TCP
int main(int argc, const char *argv[])
{//1、创建用于通信的套接字文件描述法int cfd = -1;cfd = socket(AF_INET, SOCK_STREAM, 0);if(cfd == -1){perror("socket error");return -1;}//3、链接服务器//3.1填充要链接的服务器地址信息结构体struct sockaddr_in sin;sin.sin_family = AF_INET; 		//通信域 sin.sin_port = htons(SER_PORT); 	//端口号sin.sin_addr.s_addr = inet_addr(SER_IP); //IP地址//3.2链接服务器if(connect(cfd, (struct sockaddr*)&sin, sizeof(sin)) == -1){perror("connect error");return -1;}//11、准备一个文件描述符容器fd_set readfds, tempfds;//22、清空容器FD_ZERO(&readfds);//33、将要检测的文件描述符放入集合FD_SET(0,&readfds);FD_SET(cfd,&readfds);//定义一个变量存储容器中最大的文件描述符int maxfd = cfd;//4、收发(读写)数据char buf[128] = "";while(1)  { tempfds = readfds;//使用select函数对容器中的文件描述符进行检测int res = select(maxfd+1,&tempfds, NULL, NULL, NULL);if(res == -1){perror("select error");return -1;}else if(res == 0){printf("timeout\n");return -1;}for(int i=0; i <= maxfd ;i++){if(!FD_ISSET(i,&tempfds)){continue;}if(i==0){char buf[128];scanf("%s",buf);send(cfd,buf,sizeof(buf),0);}else if(i==cfd){char buf[128]="";int res=recv(cfd,buf,sizeof(buf),0);printf("%d\n",res);printf("收到的消息为:%s\n",buf);}}/*清空数组bzero(buf,sizeof(buf));printf("请输入:");//从终端输入数据fgets(buf, sizeof(buf), stdin);buf[strlen(buf)-1] = '\0';   //将换行改为'\0'//发送给服务器send(cfd, buf, sizeof(buf), 0);printf("发送成功\n");if(strcmp(buf,"quit")==0) {break;}//接收服务器发来的消息recv(cfd, buf, sizeof(buf), 0);*/}//5、关闭客户端,套接字close(cfd);return 0;
}

使用poll实现TCP服务器的并发

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

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

相关文章

Jumpserver中安装httpx

查看已安装的包 pip freeze # python -V # Python 2.7.5安装anyio 刚开始直接pip install httpx&#xff0c;未设置版本号&#xff0c;因已有idna2.7&#xff0c;所以出现版本不兼容的现象 anyio 3.0.0 requires idna>2.8, but you have idna 2.7 which is incompatible.…

【挖挖SRC】

一个SRC混子挖SRC的半年经验分享~,基本都是文字阐述&#xff0c;希望能给同样在挖洞的师傅们带来一点新收获。 前期信息收集 还是那句老话,渗透测试的本质是信息收集&#xff0c;对于没有0day的弱鸡选手来说&#xff0c;挖SRC感觉更像是对企业的资产梳理&#xff0c;我们往往…

JVM 四种引用和使用场景

一、前言 在JDK 1.2之后&#xff0c;Java对引用的概念进行了扩充&#xff0c;将引用分为强引用&#xff08;Strong Reference&#xff09;、软引用&#xff08;Soft Reference&#xff09;、弱引用&#xff08;Weak Reference&#xff09;、虚引用&#xff08;Phantom Referen…

2024.1.18 网络编程 作业

思维导图 练习题 1>TCP传输使用IO多路复用select完成客户端 #include <myhead.h> #define SER_PORT 8888 #define SER_IP "192.168.125.15" #define CLI_PORT 9999 #define CLI_IP "192.168.125.15" int main(int argc, char const *argv[]) {/…

深入解析JavaScript的原生原型

&#x1f9d1;‍&#x1f393; 个人主页&#xff1a;《爱蹦跶的大A阿》 &#x1f525;当前正在更新专栏&#xff1a;《VUE》 、《JavaScript保姆级教程》、《krpano》、《krpano中文文档》 ​ ​ ✨ 前言 在JavaScript中,除了自定义对象,还存在很多由JavaScript语言本身提供…

Docker之nacos的安装和使用

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是君易--鑨&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的博客专栏《Docker之Dockerfile构建镜像》。&#x1f3af;&…

肯尼斯·里科《C和指针》第6章 指针(1)

作为补充资料来学习吧。 6.1 内存和地址 前面提到&#xff0c;我们可以把计算机的内存看作一条长街上的一排房屋。每座房子都可以容纳数据&#xff0c;并通过一个房号来标识。这个比喻颇为有用&#xff0c;但也存在局限性。计算机的内存由数以亿万计的位(bit)组成&#xff0c;…

[Android] Android架构体系(2)

文章目录 Bionic精简对系统调用的支持:不支持 System V IPC:有限的 Pthread 功能:有限支持C:不再支持本地化和/或宽字符:Bionic新增的特性系统属性硬编码写死的UID/GID内置了DNS解析硬编码写死的服务和协议 硬件抽象层Linux内核匿名共享内存(ASHMem)Binder-BinderLoggerION 内存…

【经典算法】有趣的算法之---粒子群算法梳理

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 粒子群算法 粒子群算法&#xff08;Particle Swarm Optimization&#xff0c;PSO&#xff09;是一种用于解决优化问题的元启发式算法。它通过模拟鸟群或…

什么是车载信息娱乐系统和集成驾驶舱

什么是车载信息娱乐系统(IVI)? “车载信息娱乐(IVI)”通过向驾驶员和乘客提供信息和娱乐&#xff0c;为驾驶提供便利和舒适。为了理解这个概念&#xff0c;有必要知道“信息娱乐”的含义。“信息娱乐”是这个市场中使用的一个词&#xff0c;它结合了“信息”和“娱乐”两个词…

编译FFmpeg4.3.1 、x264并移植到Android

1、前言 FFmpeg 既是一款音视频编解码工具&#xff0c;同时也是一组音视频编解码开发套件。 2、准备工作 系统&#xff1a;LinuxNDK&#xff1a;android-ndk-r21b-linux-x86_64.zipFFmpeg&#xff1a;ffmpeg-snapshot.tar.bz2x264&#xff1a;x264 3、下载NDK 在linux环境中…

存内计算技术打破常规算力局限性

说明&#xff1a; 本文撰写人&#xff1a;三掌柜666 由三掌柜666原创首发&#xff1a;https://blog.csdn.net/CC1991_/article/details/135623056 文章目录 前言关于存内计算1、常规算力局限性2、存内计算诞生记3、存内计算核心 存内计算芯片研发历程及商业化1、存内计算芯片研…