愚公移山日记·21

愚公移山日记·21

学习进程

这里是今天敲的一段代码是用upd聊天器,代码的内容并不难,只不过是注解太多显得很长。在这里我直接把B站课程链接发给大家,大家可以看一看主播如何讲解的这一段代码。

""""
#一,功能 发送信息 接受信息 退出程序

#二,框架的设计 
#发送信息 send_msg()
#接受信息 recv_msg()
#程序的入口 main()
#当程序独立运行的时候才能启动聊天器

#三 实现步骤
#发送信息
#定义变量接受用户与输入的接受方的IP地址
#定义变量接受用户与输入的接受方的端口号
#定义变量接受用户与输入的接受方的内容
#使用socket的sendto()发送信息
#接受信息recv_msg()
#使用socket接受数据
#解析数据
#输出显示
#主入口main()
#创建套接字
#绑定端口
#打印菜单(循环)
#接受用户输入的选项
#判断用户的选择,并且调用对应的函数
#关闭套接字
"""
import socket
def send_msg(udp_socket):
    #定义变量接受用户与输入的接受方的IP地址
    ipaddr = input('请输入接收方的IP地址:\n')
    #判断是否为空
    if len(ipaddr) ==0:
        ipaddr = ''
        print('当前接受方为默认的值{}'.format(ipaddr))
    #定义变量接受用户与输入的接受方的端口号
    port = input('请输入接收方的端口号:\n')
    #判断是否需要默认
    if len(port) ==0:
        port = ''
        print('当前接受方为默认的值{}'.format(port))
    #定义变量接受用户与输入的接受方的内容
    content = input('请输入要发送的内容:\n')
    #使用socket的sendto()发送信息
    udp_socket.sendto(content.encode(),(ipaddr,int(port)))
def recv_msg(udp_socket):
    #接受信息recv_msg()
    #使用socket接受数据
    recv_data,ip_port = udp_socket.recvfrom(1024)
    #解析数据
    recv_text = recv_data.decode()
    #输出显示
    print('接受到[%s]的消息:%s' %(str(ip_port),recv_text))
 
def main():
    #创建套接字
    udp_scoket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    #绑定端口
    #address --->('地址',端口号)
    #udp.bind(adress)
    udp_scoket.bind(('',8888))
    #打印菜单(循环)
    while True:
        print("\n\n***********************")
        print("*****1,发送信息******")
        print("*****2,接受信息*******")
        print("*****3,退出系统******")
        print("***********************")
        #接受用户输入的选项
        sel_num = int(input('请输入选项:\n'))
        if sel_num ==1:
            #print('发送信息')
            #调用发送信息的函数
            send_msg(udp_scoket)
        elif sel_num ==2:
            #print('接受信息')
            recv_msg(udp_scoket)
        elif sel_num ==3:
            print('系统正在退出系统')
            print('完成退出')
            break
    #判断用户的选择,并且调用对应的函数
    #关闭套接字
    pass
if __name__ =='__main__':
    main()
    #程序独立运行的时候,才去启动聊天器

迫于没有可以检验的系统,代码可能会出现些许问题,对此感兴趣的读者可以自行查看网站

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值