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通信的客户端也是可以绑定地址的

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

相关推荐
零陵上将军_xdr1 分钟前
后端转全栈学习-Day6-JavaScript 基础-4
前端·javascript·学习
数智工坊5 分钟前
周志华《Machine Learning》学习笔记--第十四章--概率图模型
笔记·学习·机器学习
段一凡-华北理工大学9 分钟前
工业领域的Hadoop架构学习~系列文章20:故障诊断与根因分析 - 从表象到本质的智能推理
大数据·人工智能·hadoop·学习·架构·高炉炼铁·工业智能体
梁辰兴15 分钟前
计算机网络基础:动态主机配置协议 DHCP
网络·计算机网络·dhcp·计算机网络基础·动态主机配置协议·梁辰兴
The moon forgets22 分钟前
ABot-M0:基于动作流形学习的机器人操作VLA基础模型深度解析
人工智能·pytorch·python·学习·具身智能·vla·点云分割
Dream_ksw32 分钟前
借助AI再次理解三次握手和四次挥手
服务器·网络·tcp/ip
05候补工程师40 分钟前
【马原核心复习】唯物辩证法与认识论全景架构图解与精要笔记
经验分享·笔记·学习·考研
c++之路1 小时前
C/C++ 全链路编译工具汇总
c语言·开发语言·c++
断眉的派大星1 小时前
YOLO26 完整学习笔记:从 Anchor-Free、TAL、STAL 到端到端无 NMS 部署
人工智能·笔记·学习·yolo·目标检测·计算机视觉·目标跟踪
书生的梦1 小时前
《神经网络与深度学习》学习笔记(四)
深度学习·神经网络·学习