TCP 实现全双工是没有问题的
那么UDP如何实现呢? 上代码 自己体会吧!
客户端
# -*-encoding:utf-8-*-
import socket, time
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
addr = ('127.0.0.1', 10009)
END = b'-end-'
while True:
data = input("请输入:")
if data is None or data == "quit":
break;
s.sendto(data.encode("utf8"), addr);
while True:
rec, addr2 = s.recvfrom(1024);
if rec is None or END == rec:
break
recdata = rec.decode("utf8")
print("服务端应答", addr2, (rec == END), recdata)
s.close()
服务端
# -*-encoding:utf-8-*-
import socket, time
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(('127.0.0.1', 10009))
END = b'-end-'
while True:
data, addr = s.recvfrom(1024)
print("客户端", addr)
print("客户端数据", data.decode("utf8"))
s.sendto(data, addr)
# time.sleep(1)
s.sendto(END, addr)