网络编程 UDP专题

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篇

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181107G09RA600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券