UDP中的connect函数

2020年6月20日 / 10次阅读 / Last Modified 2020年6月20日
socket

UDP是无连接的通信方式,为什么还要有一个connect函数呢?有两个作用:(1)绑定地址;(2)检查目的地址是否可达。

我们做UDP通信,有两种方式:

方法一:
socket----->sendto()或recvfrom()
方法二:
socket----->connect()----->send()或recv()

首先调用connect函数后,我们在后面流程的代码中,就可以使用send和recv函数,这两个函数中的udp地址,就是connect函数绑定的地址。

connect函数除了绑定地址外,在python中,还有别的功能。它可以检查目的地址是否可达!(这种检查应该只是通过对本地路由表的分析来检查,因此一般配置了一个网关的电脑,任意地址都是可达的)

获取本地ip地址的文章中,给出的方法就是使用connect函数随便绑定一个地址,然后取本地接口的ip地址。这个方法在后来cook项目中出了一个问题,即系统刚启动的时候,可能是因为启动顺序没有搞对,connect函数返回了一个目标地址不可达异常。

以上就是我关于UDP调用connect函数的总结。

-- EOF --

本文链接:https://www.pynote.net/archives/2072

留言区

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

More


©Copyright 麦新杰 Since 2019 Python笔记

go to top