2.UDP
收放自如
引入案例
端口绑定
2.1.UDP发送消息
2.2.UDP接收消息
题外话(Nmap)
2.3.手写UDP网络调试工具
2.4.NetCore版
2.UDP
实例代码:https://github.com/lotapp/BaseCode/tree/master/python/6.net/1.UDP
是无连接的传输协议,不保证可靠性。使用 协议的应用程序需要自己完成丢包重发、消息排序等工作(有点像寄信)
2.1.UDP发送消息
引入案例
看个UDP的简单案例:
接收到的消息:这时候端口是随机的
看起来代码还挺麻烦,我稍微分析下你就知道对比其他语言真的太简单了:
标识:
==>
==> 类型是
==> 类型是
代码三步走:
创建
发送 接收:
关闭
端口绑定
借助 (点我下载)可以知道:上面程序每次运行,端口都不固定
那怎么使用固定端口呢?==>
消息图示: ( 是监听TCP)
调试工具:
2.2.UDP接收消息
先看一个简单版本的:
图示:
题外话(Nmap)
其实如果你使用 来扫描的话并不能发现 打开的 端口:
稍微解释一下:扫描其实就是发了几个空消息过去
代表扫描UDP, 代表扫描TCP
这个主要是针对有些服务器禁用ping的处理(ping不通也尝试)
指定端口号,如果是所有端口可以使用
是因为在 下没权限, 下可以直接使用
可能有人对 输出的有疑惑,其实就是在给5400端口发空消息的时候~
来张对比图:
扫描TCP和UDP端口:
课后扩展:
收放自如
如果还是用True循环来实现:
你会发现,消息不能轮流发送,只能等对方方式后再发,虽然有处理方式,但太麻烦,这时候就可以使用我们之前说的多线程来改写一下了:
输出:(就一个注意点~)
2.3.手写UDP网络调试工具
调试工具功能比较简单,我们手写一个 版的:
CentOS 和 ( )
演示:(多PC演示)
简单说下本机IP的绑定:
Net里面习惯使用 ,很多人不知道到底是啥,其实你打开 文件就可以看到 ==> 被重定向为 ,在Linux里面也是这样的,每个PC对应的都是 回环地址:
本机通信时,对方ip就可以使用 了,当然了绑定本机ip的时候也可以使用 ( 中的空其实填的就是这个)(很多地方也会使用 )
2.4.NetCore版
快速实现一下:
下集预告:TCP篇
领取专属 10元无门槛券
私享最新 技术干货