Linux系统编程_网络编程

网络编程概述

进程间通信:管道、消息队列、共享内存、信号、信号量

进程间通信的特点:依赖于Linux内核

进程间通信的缺陷:无法多机通信

网络编程的地址构成:IP地址+端口号

网络编程数据交流:协议(数据格式)(http、tcp、udp)

单片机协议:串口协议

本处网络编程:socket套接字网络编程,用得最多的是tcp和udp:tcp(面向连接、可靠、要求精度高)、udp(面向报文、不可靠、适合数据量大,精度要求不高,内存响应快)

 

Linux应用层端口号一般选择5000-10000

字节序

小端字节序/大端字节序

小端字节序:低字节序放在低地址

socket编程步骤

Linux提供的API简析

int socket(int domain,int type,int protocol)

int bind(int sockfd,const struct sockaddr *addr,socklen_t addrlen)

socklen_t addrlen:地址长度

地址转换API

int listen(int sockfd,int backlog) 

int accept(int sockfd,struct sockaddr *addr,socklen_t *addrlen)

数据收发

数据收发常用的第二套API 

客户端的connect函数

socket服务端代码实现

整体流程:socket→bind→listen→accept→read→write

需要了解的Linux命令​​​

socket客户端代码实现

 整体流程:socket→connect→send→read

实现双方聊天

c语言中argc和argv[ ]的作用及用法:(65条消息) c语言中argc和argv[ ]的作用及用法_Black_黑色的博客-CSDN博客

多方消息收发

需要解决资源竞争问题,使用子进程fork不能解决问题

fork:一个子进程负责一个连接通道

sprintf()的使用:C 库函数 – sprintf() | 菜鸟教程 (runoob.com)

项目运行结果

ip地址位填入127.0.0.1,则会自动获取本机的ip地址

客户端指令

项目研发思路

每个版本迭代更新一项新功能,方便代码进行调试,不要一次性写大量的代码

封装get函数功能:1、判断文件是否存在;2、打开文件;3、读取文件;4、将读取到的文件信息发送到指定位置

封装pwd函数功能:1、popen;2、fread;3、send

项目指导

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值