3.2、代码实现
import socket
def sent_message(udp_socket):"""发送消息"""
# 2、让用户输入对方的IP和端口号
dest_ip = input("请输入对方的ip:")
try:
dest_port = input("请输入对方的port:")
except:
print("请输入正确的端口号")
# 3、从键盘获取要发送的数据
send_data = input("请输入要发送的内容:")
# 4、用套接字发送内容
udp_socket.sendto(send_data.encode('utf-8'),(dest_ip,dest_port))
def receive_message(udp_socket):
"""接收消息"""
# 2、使用 udp_socket 套接字就接收数据,接收内容(参数是允许接收的最大内容)
receive_data = udp_socket.recvfrom(1024)
# 3、接收的内容分为两个部分:
# 一部分是:对方发送的内容
# 另一部分是:对方的本地信息
receive_content = receive_data[0].decode('utf-8') # 存储接收的数据
receive_localAddr = receive_data[1] # 对方的本地信息
print("%s:%s"%(receive_content,receive_localAddr))
def main():
"""主函数:聊天神器"""
# 1、创建udp套接字
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
# 2、绑定一个本地的信息
local_addr = ("",7777)
udp_socket.bind(local_addr) # 必须绑定自己电脑的ip和port,其他的电脑不行# 3、功能选择
print("欢迎使用UDP聊天神器")
# 用循环来处理事情
while True:
print("1:发送消息\n2:接收消息")
input_str = input("请输入选择的功能:")
if input_str == "1":# 发送数据
sent_message(udp_socket)
elif input_str == "2":# 接收数据
receive_message(udp_socket)
elif input_str == "0":# 退出程序
break
else:
print("请输入正确的功能")# 4、关闭套接字
udp_socket.close()
if __name__ == "__main__":
main()提示:以上的程序如果选择了接收数据功能,并且此时没有数据,程序会堵塞在这,那么怎样才能让这个程序收发数据一起进行呢?后面多任务知识之后就解决
















