Linux网络编程

Socket是什么协议

Socket 是应用层与 TCP/IP 协议族 通信的中间软件抽象层,它是一组接口。在设计模式中,Socket 实际上是一个门面模式,它将复杂的 TCP/IP 协议族隐藏在 Socket 接口后面,对用户来说,一组简单的接口就是全部,让 Socket 去组织数据,以符合指定的协议。你通过配置参数让它变成什么类型的接口,比如是TCP还是UDP啊,是IPV4啊还是IPV6啊,Socket其实就是一个接口,可以由你定义的接口

TCP:面向连接(类似打电话,可靠,用于精确的发送(如指令))

UDP:面向报文(类似发短信,不可靠,用于数据量大的发送(如视频数据流))

要用到IP地址和端口号,因为一个IP地址对应一台主机,但是一个主机有很多服务,一个端口号对应一个服务(ftp、http、socket(套接字))

处理FTP协议数据的主机也**可以(但也有可能是客户端)**称为FTP服务器,其他的同理。

  • FTP服务器(FTP Server) :是被动响应请求、负责提供资源(如文件)的一方。

  • FTP客户端(FTP Client) :是主动发起连接 、向服务器请求资源的一方。

字节序

Socket(套接字)服务器和客户端的开发流程

指定网络类型和协议

int socket(int domain,int type,int protocl)会返回网络描述符,类似open返回的文件描述符

准备地址

bind()函数

监听listen()

接收连接的函数accept()

数据收发

客户端的connect函数

在windows上使用telnet测试连接看看(上面代码的127.0.0.1要改成你linux的ip地址)

为什么可以连接成功呢?

它实际上是这样子的(等价于)

这里的路由器包含了交换机

再普及一下防火墙的知识:防火墙主要用于IP的黑白名单、端口号限制等功能

服务端:

客户端:

如何实现聊天功能:

可以用父子进程来实现,服务器对每一个客户端穿建一个子进程

相关推荐
想你依然心痛1 小时前
Linux用户空间与内核空间通信:netlink、ioctl、mmap 零拷贝与性能对比
linux·运维·服务器
做个文艺程序员2 小时前
Linux第12篇:性能监控与瓶颈分析——CPU/内存/IO/网络全维度
linux·运维·网络
HAPPY酷3 小时前
【ROS2】 Conda 环境搭建(命令行版)
linux·运维·python·ubuntu·机器人·conda
hai3152475434 小时前
九章空间几何对照直译法:通用芯片 / 定制专用芯片 编译适配规则
linux·汇编·bash
ton_tom4 小时前
设备驱动程序编程-Linux2.6.10-kdb安装-32位
linux·运维·服务器
dddwjzx5 小时前
嵌入式Linux C应用编程入门——进程 ( 二 )
linux·嵌入式
司南-70496 小时前
claude - windows | linux 国内镜像安装
linux·运维·服务器
jieyucx6 小时前
【系统安全铁律】解密 Linux 权限三色数字密码:chmod 最小化赋权与生产环境避坑指南
linux·安全·系统安全·权限·chmod·777
AOwhisky7 小时前
Linux(CentOS)系统管理入门笔记(第四期)——文件系统(下篇):文件与目录操作实战——cpmvmkdirrmln
linux·运维·笔记·centos·云计算·文件系统
岑梓铭8 小时前
考研408《操作系统》复习笔记,第四章《4.2.2 文件操作、文件共享、文件保护》
linux·考研·操作系统·文件系统·408