import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(('', 8888))
print('服务器启动...')
print(s)
data, client_address = s.recvfrom(1024)
print('从客户端接受信息:{0}'.format(data.decode()))
s.sendto('你好'.encode(), client_address)
print(client_address) # 此时客户端IP地址相同,但端口不再相同
s.close()
```python
服务器启动...
<socket.socket fd=328, family=AddressFamily.AF_INET, type=SocketKind.SOCK_DGRAM, proto=0, laddr=('0.0.0.0', 8888)>
从客户端接受信息:Hello
('127.0.0.1', 62474)
为什么端口不再是8888?
8888是你服务端侦听用的端口
你客户端建立连接的端口怎么可能还是8888
你没有指定客户端用什么端口去连接,会随机给你分配一个不用的端口
这就好比你家有两台电话,一个专门用来接听,一个专门往外打
它俩能是同一个电话号码吗