python_udp连接

问题遇到的现象和发生背景

python udp 连接

问题相关代码,请勿粘贴截图

server端

import socket
s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
s.bind(('127.0.0.1',6636))
data = True
while data:
    data,address = s.recvfrom(1024)
    if data == 'zaijian' :
        break
    print('接受信息',data.decode('utf-8'))
    cmd = data.decode('utf-8')
    print(cmd)
    s.sendto(data,address)
s.close()

Client

import  socket
c = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
data = "你好"
while data:
    c.sendto(data.encode("utf-8"),('127.0.0.1',6636))
    if data == '再见':
        break
    data,addr = c.recvfrom(512)
    print(data.decode('utf-8'))
    data = input("输入信息:\n")
c.close()

运行结果及报错内容

运行正确

我的解答思路和尝试过的方法

好奇的是一个点

img

为什么这需要再次发送data addree (一开始以为是双向的,后来发现就是单向的)那么既然单向,只需要接受就行了吧,为什么还要发送呢?

我想要达到的结果

我想理解为什么要再次发送data addree

客户端发送后接收回复,服务端接收后应答。看不懂你的疑问

服务端接收后应答 是我标注的那句话的意义吧,他在while循环中,所以是每次都要返回应答的吗

这篇文章:python通过udp传输图片 也许能够解决你的问题,你可以看下