import socket;
def clientfun():
# 建立socket,使用ipv4,udp通信
sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM);
#输入要发送的信息
text = input("客户端:");
#编码
data = text.encode();
try:
# 发送
sock.sendto(data, ("127.0.0.1", 7852));
# 接收服务端的反馈
data, addr = sock.recvfrom(200);
msg = data.decode();
print(msg);
except:
print("系统反馈:无法发送数据,对方可能已把你拉黑。。")
#执行程序
if __name__ == '__main__':
while True:
clientfun();
import socket;
def serverfun():
# 建立socket,使用ipv4,udp通信
sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM);
# 绑定服务器地址和端口
addr = ("127.0.0.1",7852);
sock.bind(addr);
#接收对方信息 返回一个元组类型包含数据和地址
#参数500表示缓冲区大小
receive_data = sock.recvfrom(500);
#打印出从客户端接收的信息与客户端地址
print('收到客户端数据与地址:')
print(receive_data);
print(receive_data[1]);
#对信息的数据部分进行解码并打印 默认utf8格式
#返回一个字符串格式
text = receive_data[0].decode();
print('收到客户端消息');
print(text);
flag = 1;
#根据从客户端接收的消息给客户端反馈消息
if text == '你在干嘛':
msg = "服务端:你管我在干嘛!";
elif text == '你吃了没':
msg = "服务端:你管我吃了没!";
elif text == '约不约呀':
msg = "服务端:我约你麻痹!";
else:
msg = "服务端:你在说毛,快滚!!";
flag = 0;
#把反馈的数据编码为bytes格式
msg2 = msg.encode();
#获取客户端地址并发送数据
addr = receive_data[1];
sock.sendto(msg2,addr);
return flag;
#执行程序
if __name__ == '__main__':
print("starting server.......");
flag = 1;
while flag==1:
flag = serverfun();
print("ending server......");