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

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

相关推荐
Shining05967 分钟前
CUDA 编程系列(三)《内存模型与规约优化》
人工智能·学习·其他·学习方法·infinitensor
71-320 分钟前
MySQL的安装和卸载组件
笔记·学习·mysql
海阔天空任鸟飞~33 分钟前
蓝汛-BT897-添加按键提示音
c语言·单片机·蓝汛
MaximusCoder1 小时前
等保测评命令——Anolis Linux
linux·运维·服务器·网络·经验分享·安全·php
小付同学呀2 小时前
C语言学习(八)——C判断(switch语句)
c语言·学习·算法
线束线缆组件品替网2 小时前
Adam Tech NPC-6-007-BU网线组件详解
服务器·网络·数码相机·智能路由器·电脑·51单片机·电视盒子
Striver-Diligent2 小时前
您的解决方案准确吗?一种用于增强通信网络可靠性的、面向故障的性能预测方法
网络·深度学习·机器学习·网络性能估计·数字孪生网络·网络预测
科技林总2 小时前
【系统分析师】11.6 软件需求确认和验证
学习
cheems95272 小时前
[网络原理]http协议理论基础以及wireshark抓包分析(二)
网络·http·wireshark