嵌入式基础:网络编程

注:本文是听韦东山老师课程后的个人笔记,详细内容可以看韦东山老师的课程网站,这个部分课程是免费的。

一、引入网络编程的意义

1、多设备测试时,如果用串口通信,接线麻烦,不好管理
2、串口打印printf的调用,会拖慢程序运行的速度
3、去掉printf,才会发布成品,但是一些高速运行下的bug可能会因为iprintf拖慢程序运行速度,造成延时而被掩盖掉

综上所述,引入网络通信很有必要

二、什么时网络通信

网络通信本质上时数据传输,数据传输三要素:源、目的、长度
在这里插入图片描述

三、怎么写程序?

文件读写时:

fd = open("filename")
read(fd,buf,len)
write(fd,buf,len)

网络读写时:
在这里插入图片描述
需要确定两个元素:ip和端口
(一般80端口表示http服务,22端口表示ssh)
服务器端

socket无三要素
fd = socket(domain,type,protocol)
bind(自己的的ip、端口)(收的绑定收的,发的绑定发的)把fd和ip绑定起来
listen(启动监测数据)
accept(建立一条连接)
send(发数据,回应请求)
recv(接收数据)
 

客户端

fd = socked(domain,type,protocol)
connect(建立连接,指明目的地址)
send(发数据)
recv(接收数据)

============================================

udp:
服务端

fd = socket();
bind(ip,端口);
recvfrom
sendto

客户端

connect可用可不用,用connect,和send搭配,不用connect,直接用sendto,
其参数中有目的地址,而这一绑定缓解sendto自带,send却需要connect来绑定。
connect()//不是三次握手的连接
send(),sendto()
recv(),recvfrom()
  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值