首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

机器和智能

专栏成员
75
文章
22655
阅读量
12
订阅数
并发服务器代码实现(多进程/多线程)
当涉及到构建高性能的服务器应用程序时,我们通常会考虑使用并发服务器来处理多个客户端请求。在并发服务器中,多进程和多线程是两种常见的并发模型,它们都有各自的优点和适用场景。本文将介绍多进程和多线程并发服务器的基础知识。
mindtechnist
2025-05-09
500
IO多路转接技术 | poll/epoll详解
epoll_data_t是一个联合体union,四个成员共用同一块内存,也就是说四个成员我们只能用一个,一般情况下我们用fd,这个fd实际上就是epoll_ctl()函数的第三个参数fd。
mindtechnist
2025-05-05
700
计算机网络通信过程
上图对应两台计算机在同一网段中的情况,如果两台计算机在不同的网段中,那么数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器,如下图所示:
mindtechnist
2025-04-19
940
基于UDP的C/S模型代码实现
传输层主要应用的协议模型有两种,一种是TCP协议,另外一种则是UDP协议。TCP协议在网络通信中占主导地位,绝大多数的网络通信借助TCP协议完成数据传输。但UDP也是网络通信中不可或缺的重要通信手段。
mindtechnist
2025-03-24
730
套接字函数 | socket、bind、listen、accept、connect
AF_INET 这是大多数用来产生socket的协议,使用TCP或UDP来传输,用IPv4的地址。
mindtechnist
2025-03-04
2000
网络套接字、网络字节序、sockaddr结构
Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。
mindtechnist
2025-02-12
1160
TCP状态转换
在使用套接字通信时,可以使用netstat命令捕捉进程状态或使用netstat查看网络相关状态信息,netstat的常用参数如下:
mindtechnist
2025-02-04
1050
UDP通信机制详解
前面介绍了TCP,TCP是面向连接的、安全的、流式传输协议。UDP是面向无连接的、不安全的、报式传输协议。UDP通信流程如下:
mindtechnist
2024-12-25
2750
TCP通信机制:三次握手、四次挥手、滑动窗口
TCP在建立连接的时候需要进行三次握手(TCP握手时一定有SYN标志,不带SYN标志的为建立连接后的正常数据传输)
mindtechnist
2024-12-06
5010
socket套接字
套接字就像一个插座,插座需要一个插头来连接双方才能通电,而socket通信也需要两个端,一个服务端一个客户端。一般来说,服务端是被动的,客户端是主动的,也就是说服务端应该先启动,启动之后就被动的去准备被(客户端)连接以提供服务,而客户端需要服务的时候就主动去连接服务器端。
mindtechnist
2024-11-15
2190
TCP并发服务器(多进程与多线程)
我们在上一节写的TCP服务器只能处理单连接,在代码实现时,多进程并发服务器与非并发服务器在创建监听套接字、绑定、监听这几个步骤是一样的,但是在接收连接请求的时候,多进程并发服务器是这样实现的:父进程负责接受连接请求,一旦连接成功,将会创建一个子进程与客户端通信。示意图如下:
mindtechnist
2024-10-08
2640
端口复用(bind error: Address already in use 问题)
在前面讲解TCP状态转换中提到过一个2MSL等待时间,如果在通信过程中,server主动断开连接,那么server进程会处于TIME_WAIT状态并等待2MSL的时间,此时server进程还没终止,端口号port还被该进程占用呢,所以当server主动断开连接时,如果立即再次启动server,就会提示端口已经被使用,等待2MSL后才可以再次启动server。请看下图
mindtechnist
2024-09-17
4080
网络编程基础
- 优点:协议选用比较灵活;可以缓存数据,比如说我们在打游戏时,在游戏过程中,实际上一些音效、图片都已经缓存下来了,想象一下,如果你玩LOL的时候,音效和动画需要去服务器实时下载,那么游戏会卡成什么样子。
mindtechnist
2024-09-06
1020
CentOS部署Apache服务
这是文档的根目录,我们安装的服务是在服务端的,当我们使用谷歌浏览器浏览网页的时候,谷歌浏览器作为客户端会向服务端httpd软件发送请求,而httpd软件就是提供网页服务的,网页实际上就是一堆文件,httpd就会去这个目录/var/www/html寻找文件。也就是浏览器客户端向服务器的httpd服务发送请求时,httpd程序就会去该目录查找文件并返回给谷歌浏览器客户端,所以说上网的过程就是一个文件下载的过程。与网站有关的所有文件都在这个目录下,我们可以写一个hello.txt文件保存在该目录下。
mindtechnist
2024-08-08
1190
CentOS部署Samba服务
Samba网盘,Samba是一个网络服务器,用于Linux和Windows之间共享文件,Samba一般装在Linux系统中作为服务器,为Windows用户提供网盘。
mindtechnist
2024-08-08
1980
C/C++程序的编译过程【文末送书】
这一步由预处理器完成,对源程序中的伪指令(以#开头的指令)和特殊符号进行处理,伪指令包括宏定义指令、条件编译指令和头文件中包含的指令。这一步的主要工作包括以下内容:
mindtechnist
2024-08-08
930
Python环境安装与管理 | conda安装详细教程
Conda是一个开源的包管理和环境管理工具,用于管理软件包和创建独立的环境。它最初是Anaconda发行版的一部分,但也可以作为独立工具使用。以下是有关Conda的详细信息以及为什么要使用它的一些原因:
mindtechnist
2024-08-08
1.3K0
【虚拟终端工具】SecureCRT连接虚拟机、rz/sz传输、中文乱码问题解决、每次打开都须重新注册问题解决
SecureCRT支持SSH,同时支持Telnet和rlogin协议。SecureCRT可用于连接Windows、UNIX和Linux等,并且通过SecureCRT还可以连接串口。我们在开发或学习的时候,一般会在VMware虚拟机中安装Linux操作系统比如centOS、Ubuntu等,如果直接在虚拟中操作的话,多少会有些不方便,所以我们可以通过SecureCRT连接到虚拟机中的Linux操作系统,直接在Windows下的SecureCRT终端就可以使用Linux命令行进行操作,非常方便快捷,并且还支持sz、rz等传输命令,另外搭配UltraEdit(UE)编辑工具,会大大方便我们的开发和学习。
mindtechnist
2024-08-08
4280
玩转vim(vi)编辑器
vi编辑器是Linux下的标准编辑器,vi编辑器并非只是用来写程序,还可以用来对一些配置文件进行编辑。vim是vi的加强版,我们一般使用vim对文件进行编辑。本文介绍了vim编辑器的三大模式,以及相应的命令,最后介绍了如何通过vim编辑器的配置文件.vimrc根据自己的需求对vim进行配置。
mindtechnist
2024-08-08
8740
matplotlib数据可视化
如果将文本数据和图表数据放在一起,人类的思维模式可能更适合于理解图表数据,因为图表数据更加直观、形象。使用图表来表示数据的方法就叫做数据可视化。可视化是在整个数据挖掘的关键辅助工具,可以帮助我们清晰的理解数据,从而调整我们的分析方法。通过可视化,能将数据更直观的呈现出来,使数据更加客观、更具说服力。
mindtechnist
2024-08-08
1840
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档