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

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

相关推荐
xixiaoyunya19 分钟前
移动办公场景下手机远程访问内网设备的技术方案选型与实践
网络·智能手机·智能路由器
weixin_4462608510 小时前
从被动镜像到主动智能体:面向网络物理人工智能的整体论数字孪生(HDT-Net)
网络·人工智能
ZJH__GO10 小时前
网络编程v4pro--实现聊天室文件传输功能
java·服务器·网络·计算机网络
命运之光11 小时前
【C语言完整代码】就诊信息管理系统
java·c语言·开发语言
命运之光11 小时前
【C语言完整代码】图书管理系统:图书馆场景下的增删改查实战
c语言·开发语言
圆奋奋13 小时前
FreeRTOS学习(三)- 任务调度模块
学习·开源·freertos
shengnan_wsn13 小时前
【协议】【TCP】
网络·网络协议·tcp/ip
烟雨江南78513 小时前
2026汽车制造与新能源整车柔性产线Agentic-Workflow白皮书:跨APS_MES_ERP多智能体动态排产与装配容错实战
大数据·网络·人工智能·自动化·ai客服·企业agent
沫璃染墨13 小时前
《从零入门Linux系统篇(十五):系统工具篇·六——GDB调试器详解:从程序执行控制到高级调试技巧》
linux·运维·服务器·c语言·c++
吃着火锅x唱着歌13 小时前
Effective C++ 学习笔记 条款40 明智而审慎地使用多重继承
c++·笔记·学习