c网络编程学习笔记

1.概述

c语言网络编程是通过socket套接字的,socket套接字在Linux中都是文件描述符,像操纵文件操纵标准输入输出一样去通信。

2.流程

编写代码是在应用层,使用的内容主要是tcpip的内容,比如我们需要主动编写ip地址,输入端口号来决定怎么去通信和谁通信。

服务器端:

创建socket、初始化地址、绑定地址、监听、建立连接、通信

客户端:

创建socket、初始化服务器端地址、connect、通信

3.线程池创建需要的东西

需要有线程tid组成的数组、任务、线程的工作函数、唤醒线程的信号量、任务队列、对于队列存取的锁等

4.关于字符串转换、大小端转换

网络默认是大端,在网络传输时要变成小端字节序。

字符串转数字有atoi,大小端转换有htol这些。

5.多进程多线程

多进程是通过fork,然后根据返回值判断是父进程还是子进程。多线程是通过线程创建函数。

进程间通信方法有很多,这些都是单机的通信也是通信方法,比如pipe的管道,比如共享内存。

6.RAII

raii就是把对对象在堆上的操作封装在类的构造和析构内自动完成避免内存泄露。在编写通信代码的时候经常会用的锁,而锁需要创建和销毁就可以封装在类内。

7.tcp通信的客户端也是可以绑定地址的

但是通常上用不到,随机分配一个,然后服务端自己解析就可以了。

相关推荐
奋斗的阿狸_19866 分钟前
ESP32-S3 + ES7210 四通道麦克风录音上传方案
c语言·开发语言·fpga开发
2401_8628808223 分钟前
iMX6ULL 驱动工程搭建 + LED 灯驱动
c语言·驱动开发·嵌入式硬件
ACP广源盛1392462567335 分钟前
Type‑C 扩展坞方案选型笔记|国产 DP1.4 转 HDMI2.0 桥接芯片 GSV2201S @ACP评估
c语言·开发语言·笔记·硬件架构·硬件工程·国产芯片
沐欣工作室_lvyiyi39 分钟前
超市智能货架系统设计与实现(论文+源码)
c语言·单片机·课程设计·电子信息工程毕业设计·黑龙江工商学院·广州工商学院·成都工业学院
C++ 老炮儿的技术栈1 小时前
static的作用
c语言·c++·人工智能·单片机·c
物联网软硬件开发-轨物科技2 小时前
【轨物洞见】什么是产品碳足迹(PCF)?ISO 14067 计算方法与应用场景深度解读
大数据·网络·人工智能
词却2 小时前
OpenCV学习:MediaPipe 人脸网格检测
opencv·学习
李日华大战鸡红2 小时前
FOC SVPWM过调制(学习记录)
stm32·单片机·学习
AI职业加油站2 小时前
AI 校招现状:大模型应用工程师证书,助力简历能力证明
大数据·运维·人工智能·学习·职场发展
陈年老古董3 小时前
Hive 函数学习笔记(上):单行函数与炸裂函数
hive·笔记·学习