UDP聊天器

'''
一、功能
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):
    # 1)定义变量接收用户与输入的接收方的IP地址
    ip_addr = input('请输入接收方的IP地址:\n')
    # 2)定义变量接收用户与输入的接收方的端口号
    port = input('请输入接收方的端口号:\n')
    # 3)定义变量接收用户与输入的接收方的内容
    content = input('请输入要发送的内容:\n')
    # 4)使用socket的sendto()发送信息
    udp_socket.sendto(content.encode('gbk'),(ip_addr,int(port)))

def recv_msg(udp_socket):
    # 1)使用socket接收数据
    recv_data,id_port = udp_socket.recvfrom(1024)
    # 2)解码数据
    recv_txt = recv_data.decode('gbk')
    # 3)输出显示
    print("接收到【%s】的消息%s"%(str(id_port),recv_txt))


def main():
    # 1)创建套接字
    udp_socket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)

    # 2)绑定端口
    udp_socket.bind(('',8080))
    while True:
    # 3)打印菜单(循环)
        print("***********************")
        print("******1.发送信息********")
        print("******2.接收信息********")
        print("******3.退出系统********")
        print("***********************")
        # 4)接收用户输入的选项
        sel_num = int(input("请输入选项:\n"))
        # 5)判断用户的选择,并且调用对应的函数
        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
    # 6)关闭套接字
    udp_socket.close()

if __name__ == '__main__':
    main()


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值