发布

机器和智能

专栏成员
71
文章
16375
阅读量
12
订阅数
套接字函数 | socket、bind、listen、accept、connect
AF_INET 这是大多数用来产生socket的协议,使用TCP或UDP来传输,用IPv4的地址。
mindtechnist
2025-03-04
170
网络套接字、网络字节序、sockaddr结构
Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。
mindtechnist
2025-02-12
820
TCP状态转换
在使用套接字通信时,可以使用netstat命令捕捉进程状态或使用netstat查看网络相关状态信息,netstat的常用参数如下:
mindtechnist
2025-02-04
840
UDP通信机制详解
前面介绍了TCP,TCP是面向连接的、安全的、流式传输协议。UDP是面向无连接的、不安全的、报式传输协议。UDP通信流程如下:
mindtechnist
2024-12-25
1730
TCP通信机制:三次握手、四次挥手、滑动窗口
TCP在建立连接的时候需要进行三次握手(TCP握手时一定有SYN标志,不带SYN标志的为建立连接后的正常数据传输)
mindtechnist
2024-12-06
3980
socket套接字
套接字就像一个插座,插座需要一个插头来连接双方才能通电,而socket通信也需要两个端,一个服务端一个客户端。一般来说,服务端是被动的,客户端是主动的,也就是说服务端应该先启动,启动之后就被动的去准备被(客户端)连接以提供服务,而客户端需要服务的时候就主动去连接服务器端。
mindtechnist
2024-11-15
920
TCP并发服务器(多进程与多线程)
我们在上一节写的TCP服务器只能处理单连接,在代码实现时,多进程并发服务器与非并发服务器在创建监听套接字、绑定、监听这几个步骤是一样的,但是在接收连接请求的时候,多进程并发服务器是这样实现的:父进程负责接受连接请求,一旦连接成功,将会创建一个子进程与客户端通信。示意图如下:
mindtechnist
2024-10-08
2190
端口复用(bind error: Address already in use 问题)
在前面讲解TCP状态转换中提到过一个2MSL等待时间,如果在通信过程中,server主动断开连接,那么server进程会处于TIME_WAIT状态并等待2MSL的时间,此时server进程还没终止,端口号port还被该进程占用呢,所以当server主动断开连接时,如果立即再次启动server,就会提示端口已经被使用,等待2MSL后才可以再次启动server。请看下图
mindtechnist
2024-09-17
3170
网络编程基础
- 优点:协议选用比较灵活;可以缓存数据,比如说我们在打游戏时,在游戏过程中,实际上一些音效、图片都已经缓存下来了,想象一下,如果你玩LOL的时候,音效和动画需要去服务器实时下载,那么游戏会卡成什么样子。
mindtechnist
2024-09-06
820
CentOS部署Apache服务
这是文档的根目录,我们安装的服务是在服务端的,当我们使用谷歌浏览器浏览网页的时候,谷歌浏览器作为客户端会向服务端httpd软件发送请求,而httpd软件就是提供网页服务的,网页实际上就是一堆文件,httpd就会去这个目录/var/www/html寻找文件。也就是浏览器客户端向服务器的httpd服务发送请求时,httpd程序就会去该目录查找文件并返回给谷歌浏览器客户端,所以说上网的过程就是一个文件下载的过程。与网站有关的所有文件都在这个目录下,我们可以写一个hello.txt文件保存在该目录下。
mindtechnist
2024-08-08
1050
CentOS部署Samba服务
Samba网盘,Samba是一个网络服务器,用于Linux和Windows之间共享文件,Samba一般装在Linux系统中作为服务器,为Windows用户提供网盘。
mindtechnist
2024-08-08
1780
C/C++程序的编译过程【文末送书】
这一步由预处理器完成,对源程序中的伪指令(以#开头的指令)和特殊符号进行处理,伪指令包括宏定义指令、条件编译指令和头文件中包含的指令。这一步的主要工作包括以下内容:
mindtechnist
2024-08-08
780
Python环境安装与管理 | conda安装详细教程
Conda是一个开源的包管理和环境管理工具,用于管理软件包和创建独立的环境。它最初是Anaconda发行版的一部分,但也可以作为独立工具使用。以下是有关Conda的详细信息以及为什么要使用它的一些原因:
mindtechnist
2024-08-08
1.2K0
【虚拟终端工具】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
3310
玩转vim(vi)编辑器
vi编辑器是Linux下的标准编辑器,vi编辑器并非只是用来写程序,还可以用来对一些配置文件进行编辑。vim是vi的加强版,我们一般使用vim对文件进行编辑。本文介绍了vim编辑器的三大模式,以及相应的命令,最后介绍了如何通过vim编辑器的配置文件.vimrc根据自己的需求对vim进行配置。
mindtechnist
2024-08-08
4090
matplotlib数据可视化
如果将文本数据和图表数据放在一起,人类的思维模式可能更适合于理解图表数据,因为图表数据更加直观、形象。使用图表来表示数据的方法就叫做数据可视化。可视化是在整个数据挖掘的关键辅助工具,可以帮助我们清晰的理解数据,从而调整我们的分析方法。通过可视化,能将数据更直观的呈现出来,使数据更加客观、更具说服力。
mindtechnist
2024-08-08
880
玩转shell命令 | Linux常用命令大全
本文详细介绍了Linux的基本知识和一些基本指令,这些指令是使用Linux的基本技能。在介绍命令的同时,把相关的一些Linux知识也进行了扩展,比如在讲解文件的权限命令时,介绍了文件详细信息中各个位的含义,通过权限掩码怎么求8进制数字权限,在比如在讲解建立软硬链接命令的同时,对软硬链接的本质和区别进行了分析等等。另外,还给出了一些初用Linux时可能会遇到的问题及解决方法,比如Linux时间和本地时间不一致问题的解决、CentOS 6无法使用yum安装的解决方法等等。本文讲解的命令全部都在目录中一一列出,如果只是想了解某个命令的使用,可以直接在目录跳转(这也是为什么使用每个命令做目录的原因)。
mindtechnist
2024-08-08
780
IP地址虚拟网络与虚拟机网络配置
在同一个子网内,通过mac地址就能通信,如果是跨子网的话就需要IP地址来实现通信。
mindtechnist
2024-08-08
2410
深入浅出GCC编译器
GCC原名为GNU C语言编译器(GNU C Compiler),只能对C语言进行编译等处理。后来随着其功能的扩展,可以支持更多编程语言,如C++、Java、Fortran、Pascal、Objective -C、Ada、Go以及各类处理器架构上的汇编语言等。所以,现在我们所说的GCC是指GNU编译器套件(GNU Compiler Collection)。本文将带你迈入GCC的大门,了解一个C源文件是如何在GCC编译工具链的加工下成为一个可执行性文件的,并详细讲解GCC编译参数以及可能会用到的其他知识。
mindtechnist
2024-08-08
5270
网络名词术语解析
路由器(Router)是连接因特网中各局域网、广域网的设备,它会根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号的设备。
mindtechnist
2024-08-08
1570
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档