Skip to main content

Command Palette

Search for a command to run...

Linux网络编程:Socket编程与通信协议

Published
1 min read

网络套接字 socket

在通信过程中,套接字一定是成对出现的 一个文件描述符指向一个套接字(该套接字内部存在两个缓冲区)

网络字节序(采用大端法进行存储)

IP地址转换函数

sockaddr套接字数据结构( man 7 ip)

listen()设置同时建立链接的监听上限数

accept()阻塞监听客户端链接

socket函数

Listen 设置同时与服务器建立连接的上限数:上线数值最大为128

accept

connect函数

C\S 通信模型编程 ->TCP通信流程分析

如果没有编写客户端的程序 使用nc ip地址 端口号 也可以连接服务器端 建立链接

为什么TCP建立链接需要三次握手 而断开连接则需要四次挥手呢?->是因为半关闭状态 ->所谓班关闭状态是关闭的内核中的缓冲区 而不是关闭的套接字

Tcp通信和Udp通信各自的优缺点

UDP通信

UDP的C\S模型

recv()/send() 只能用于TCP通信 替代read write

recvfrom 和 sendto函数

在服务器端使用recvfrom需要加上最后两个参数,因为最后两个参数是传出参数,服务器端需要知道他传出来的信息,以知道我处理完之后发送给谁 而客户端中如果接收则不需要加上最后两个参数 第一客户端不需要知道是谁发的,因为肯定是服务器端发的,如果实在想知道是谁发的 应该另外建一个空的sockaddr_in 结构体 来存储传出的信息 而不是用之前发送过去的那个sockaddr_in 地址

本地套接字与网络套接字比较

  • 本地套接字

    unlink()减少硬链接数

More from this blog

Redis学习

1.什么是SSD HDD作为存储传统的数据库? SSD:固态硬盘---使用闪存芯片存储数据 无机械部件 特点:读写速度快(尤其是随机读写)、延迟低、抗震性好,但单位容量成本较高。 HDD:机械硬盘--传统机械硬盘 特点:容量大、成本低,但读写速度较慢(尤其是随机读写),延迟高。 2.什么是非易失性持久化 非易失性持久化 = 靠谱的硬件 (断电不丢数据的 SSD/PMEM) + 严谨的软件策略 (确

Mar 4, 20261 min read

分布式存储系统面试问题解析

共识算法剖析 raft共识算法 1.在你的 C++ 实现中,如果 Leader 发送 AppendEntries 给 Follower,但 Follower 的日志落后太多(比如中间缺了 100 条),Raft 论文建议是一个一个往前找(nextIndex--)。这种做法在高性能存储中显然是不可接受的,你会如何优化这个“回溯”过程? 在工程实现中,我会从两个维度优化日志冲突后的同步效率: 1. 快

Feb 9, 202613 min read

Unix环境编程:杂谈

动态加载 API 进程管理 什么是进程 进程的创建 进程的终止与遗言函数 进程资源回收 进程的映像更新 ps -o pid,ppid,pgrp,comm 这个linux命令是将当前终端上运行的进程打印出来 进程中使用环境变量 子进程环境变量改变 不会更改父进程的环境变量 进程间通信 有名管道不存储数据 其本身大小为 0 当一个进程写入数据进去时 如果没有进程读取数据那么该写进程就会堵塞在哪里 同理 如果读进程想要读取数据 但是却没有数据...

Jan 30, 20263 min read

Unix环境编程:第一章

1.1操作系统的介绍 1.2 计算机系统的分层 1.3 编译过程 ?上一个命令的运行结果 echo 就是输出上一个命令的运行结果 哎linux环境下文件中查找一个元素 即在命令模式下 输入/+你要查找的字符 即/printf 这样 然后找到之后 n表示查找下一条 shift+n表示上一条 file+文件名 查=查看文件是否可运行 1.4 多模块开发 变量的定义是为变量扩充作用域 而变量的声明需要为变量内存空间 gcc -c 文件 检验是否存在语法错误 nm 目标文...

Jan 30, 20261 min read

C++ Stl杂项

迭代器特性 输入流的容器特性 迭代器对算法的影响 仿函数和函数对象 分配器 对于平常的我们内存的使用,直接使用new delete 即可 使用分配器的话还需要记住自己当时申请了多少的内存 很不方便 哈希表深度探索 哈希容器 哈希表在扩充时,会先将自身大小乘以2 然后在选择自身2倍距离最近的一个质数 作为新的大小 哈希函数 以哈希表为底层支撑的适配器 红黑树 容器 list容器 forward_list 对于标准库,其本身提供一个sort排序函数,但某些容器也提供sort服务...

Jan 29, 20261 min read

xianyu-sheng

29 posts