端口的问题以及绑定端口
使用udp发送
使用udp发送数据时,在每一次都需要写上接受方的ip和端口号(port)
每次使用的端口号都是不一样的,哪怕使用的是相同的程序,每次使用套接字都是使用的不同的端口,
在同一个OS里面不能重复使用统一的端口,在端口被释放前,不能使用这个端口,因为端口在一个ip下代表一个进程,两个进程使用同一个端口,会导致数据接受失败。或者两个进程分不同时间接受到数据。
当在登陆QQ或者别的软件时候,会自动发送广播,通知上线消息,但是是在底层里实现的。
udp绑定信息
为了让软件使用固定的端口,为了方便访问。
from socket import *
upScoket = socket(AF_INET, SOCK_DGRAM)
# 这里创建了一个套接字。
upAddr = ('192.168.0.100', 8080)
# 这里是想要对话的ip外加端口
information = input("你说句话啊!")
information = information.encode()
bindAddr = ('', 7788) # 这里是绑定的端口,前面不写是指的是使用默认的ip,但是端口是绑定的。
upScoket.bind(bindAddr) # 这里将套接字绑定在设置的端口上
upScoket.sendto(information, upAddr)
# upScoket.sendto(information,upAddr)
这里可以看见端口是不变的,发送方其实可以不绑定,但是接受数据的一方必须绑定,此时使用的是软件自动绑定固定端口,接受数据绑定: