'''
一、功能
1.发送信息
2.接收信息
3.退出系统
二、框架的设计
1.发送信息 send_msg()
2.接收信息 recv_msg()
3.程序的主入口 main()
4.当程序独立运行的时候,才启动聊天器
三.实现步骤
1.发送信息 send_msg()
1)定义变量接收用户与输入的接收方的IP地址
2)定义变量接收用户与输入的接收方的端口号
3)定义变量接收用户与输入的接收方的内容
4)使用socket的sendto() 发送信息
2.接收信息 recv_msg()
1)使用socket接收数据
2)解码数据
3)输出显示
3.主入口main()
1)创建套接字
2)绑定端口
3)打印菜单(循环)
4)接收用户输入的选项
5)判断用户的选择,并且调用对应的函数
6)关闭套接字
'''
import socket
def send_msg(udp_socket):
ip_addr = input('请输入接收方的IP地址:\n')
port = input('请输入接收方的端口号:\n')
content = input('请输入要发送的内容:\n')
udp_socket.sendto(content.encode('gbk'),(ip_addr,int(port)))
def recv_msg(udp_socket):
recv_data,id_port = udp_socket.recvfrom(1024)
recv_txt = recv_data.decode('gbk')
print("接收到【%s】的消息%s"%(str(id_port),recv_txt))
def main():
udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
udp_socket.bind(('',8080))
while True:
print("***********************")
print("******1.发送信息********")
print("******2.接收信息********")
print("******3.退出系统********")
print("***********************")
sel_num = int(input("请输入选项:\n"))
if sel_num == 1:
print('您选择的是发送信息')
send_msg(udp_socket)
elif sel_num == 2:
print('您选择的是接收信息')
recv_msg(udp_socket)
elif sel_num == 3:
print('系统正在退出¥……')
print('系统退出完成!')
break
udp_socket.close()
if __name__ == '__main__':
main()