UDP通信实验、广播与组播、本地套接字

文章目录

    • 流程
    • 函数
    • 应用
    • 广播
      • 应用
    • 组播(多播)
    • 本地套接字
      • 应用

流程

UDP通信实验、广播与组播、本地套接字_第1张图片

函数

UDP通信实验、广播与组播、本地套接字_第2张图片
返回值:
成功,返回成功发送的数据长度
失败,-1
UDP通信实验、广播与组播、本地套接字_第3张图片
返回值:
成功,返回成功接收数据长度
失败,-1

应用

UDP通信实验、广播与组播、本地套接字_第4张图片

广播

UDP通信实验、广播与组播、本地套接字_第5张图片
UDP通信实验、广播与组播、本地套接字_第6张图片

应用

服务器:

  1. socket
    UDP通信实验、广播与组播、本地套接字_第7张图片
    UDP通信实验、广播与组播、本地套接字_第8张图片
    客户端:
    socket
    绑定本地IP和服务器广播端口

UDP通信实验、广播与组播、本地套接字_第9张图片

组播(多播)

UDP通信实验、广播与组播、本地套接字_第10张图片
组播既可以用于局域网,也可以用于广域网
客户端需要加入多播组,才能接收到多播的数据
服务器向组播地址发送
UDP通信实验、广播与组播、本地套接字_第11张图片
UDP通信实验、广播与组播、本地套接字_第12张图片
UDP通信实验、广播与组播、本地套接字_第13张图片
服务器:创建socket设置组播地址UDP通信实验、广播与组播、本地套接字_第14张图片
UDP通信实验、广播与组播、本地套接字_第15张图片

客户端:
创建socket
绑定本地IP和多播端口
加入组播组
UDP通信实验、广播与组播、本地套接字_第16张图片

本地套接字

有关系和没有关系的进程之间都可以进行本地套接字通信
UDP通信实验、广播与组播、本地套接字_第17张图片
服务器端的流程:
UDP通信实验、广播与组播、本地套接字_第18张图片
UDP通信实验、广播与组播、本地套接字_第19张图片
通过本地套接字,实现缓冲区的连接。

应用

本地套接字需要头文件:
#include

服务端:
UDP通信实验、广播与组播、本地套接字_第20张图片
UDP通信实验、广播与组播、本地套接字_第21张图片
UDP通信实验、广播与组播、本地套接字_第22张图片
UDP通信实验、广播与组播、本地套接字_第23张图片
UDP通信实验、广播与组播、本地套接字_第24张图片
UDP通信实验、广播与组播、本地套接字_第25张图片

客户端:
int cfd = socket
UDP通信实验、广播与组播、本地套接字_第26张图片

bind
本地client.sock
UDP通信实验、广播与组播、本地套接字_第27张图片

connect
UDP通信实验、广播与组播、本地套接字_第28张图片
发送数据
UDP通信实验、广播与组播、本地套接字_第29张图片

接收数据
UDP通信实验、广播与组播、本地套接字_第30张图片

关闭
在这里插入图片描述

服务器和客户端运行会产生两个伪文件,分别为《server.sock》《client.sock》,两个文件的大小为0
在这里插入图片描述
注意 :服务器和客户端运行之后,文件会产生,若不删除下次运行会绑定失败,解决方式是在代码中添加:
UDP通信实验、广播与组播、本地套接字_第31张图片
在这里插入图片描述

你可能感兴趣的:(Linux,udp,网络协议,网络)