Linux软件高级编程-网络--day12

1.recvfrom

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,

struct sockaddr *src_addr, socklen_t *addrlen);

功能:

从套接字中接收数据

参数:

sockfd:套接字文件描述符

buf:存放数据空间首地址

flags:属性 默认为0

src_addr:存放IP地址信息的空间首地址

addrlen:存放接收到IP地址大小空间的首地址

返回值:

成功返回实际接收字节数

失败返回-1

2.修改虚拟机到桥接模式:

点击"虚拟机"

点击"设置"

点击"网络适配器"

选择"桥接模式"

点击"确定"

3.将网卡桥接到无线网卡

点击"编辑"

点击"虚拟网络编辑器"

点击"更改设置"

4.在Ubuntu中重启网络服务

1.sudo /etc/init.d/networking restart

ifconfig

2.bind

int bind(int sockfd, const struct sockaddr *addr,

socklen_t addrlen);

功能:

在套接字上绑定一个IP地址和端口号

参数:

sockfd:套接字文件描述符

addr:绑定IP地址空间首地址

addrlen:绑定IP地址的长度

返回值:

成功返回0

失败返回-1

3.UDP编程:

发端:socket -> sendto -> close

收端: socket -> bind -> recvfrom -> close

4.UDP需要注意的细节点:

1.UDP是无连接,发端退出,收端没有任何影响

2.UDP发送数据上限,最好不要超过1500个字节

3.UDP是不安全不可靠的,连续且快速的传输数据容易产生数据丢失

5.wireshark

抓包工具

操作流程:

1.sudo wireshark

打开wireshark抓包工具

2.选择抓取数据包的网卡

any

3.执行通信的代码

4.停止通信

5.设定过滤条件

ip.addr == IP地址

udp

tcp

udp.port == 端口

6.UDP包头长度:8个字节

源端口号(2个字节)

目的端口号(2个字节)

长度(2个字节)

校验和(2个字节)

相关推荐
小羊Linux客栈20 分钟前
自动化:批量文件重命名
运维·人工智能·python·自动化·游戏程序
伤不起bb1 小时前
MySQL 高可用
linux·运维·数据库·mysql·安全·高可用
shykevin3 小时前
python开发Streamable HTTP MCP应用
开发语言·网络·python·网络协议·http
whgjjim3 小时前
docker迅雷自定义端口号、登录用户名密码
运维·docker·容器
tmacfrank4 小时前
网络编程中的直接内存与零拷贝
java·linux·网络
数据与人工智能律师6 小时前
虚拟主播肖像权保护,数字时代的法律博弈
大数据·网络·人工智能·算法·区块链
瀚高PG实验室7 小时前
连接指定数据库时提示not currently accepting connections
运维·数据库
QQ2740287567 小时前
Soundness Gitpod 部署教程
linux·运维·服务器·前端·chrome·web3
淡忘_cx7 小时前
【frp XTCP 穿透配置教程
运维
qwfys2007 小时前
How to configure Linux mint desktop
linux·desktop·configure·mint