• 异常处理与网络基础中的tcp,udp协议


    # 异常处理:
    # 什么是异常?异常和错误的区别
        # Error  语法错误   比较明显的错误 在编译代码阶段就能检测出来
        # Iteration 异常  在执行代码的过程中引发的异常
    # 异常发生之后的效果
        # 一旦在程序中发生异常,程序就不再继续执行了
    # try:
    #     # name
    #     [][3]
    # except NameError:
    #     print("请设置好变量!!")
    # except IndexError:  #分支异常处理
    #     print('请认真!!')
    # # except Exception as e:#万能异常,常常放在分支异常后面
    # #     print(e,type(e))
    # else:
    #     print(666)#只有不出现错误才会执行,若执行成功except,不执行else
    # finally:
    #     print(777)#不管出没出现错误,finally都会执行
    
    # 自定义异常
    # raise NameError('这是一个name error的异常')
    # class EvaException(Exception):
    #     def __init__(self,msg):
    #         self.msg = msg
    #
    # raise EvaException('这是一个什么什么错误,有什么问题')
    
    # 使用异常处理的注意事项
    # 断言 assert raise 主动抛异常
    # 异常处理(一般少用异常处理)
        # try/except
        # try/except/else
        # try/except/else/finally
        # try/except/finally
        # try/finally
    
    # collections模块
    # 数据类型的扩展模块
    # import queue
    # q = queue.Queue()
    # print(q.qsize())
    # q.put(1)
    # q.put('a')
    # q.put((1,2,3))
    # q.put(({'k':'v'}))
    # print(q.qsize())
    # print('q : ',q)
    # print('get : ',q.get())
    # print(q.qsize())
    
    # deque 双端队列
    # from collections import deque
    # dq = deque()
    # dq.append(2)
    # dq.append(5)
    # dq.appendleft('a')
    # dq.appendleft('b')
    # print(dq)
    # # print(dq.pop())
    # # print(dq)
    # # print(dq.popleft())
    # # print(dq)
    # print(dq.remove('a'))
    # print(dq.insert(2,'123'))
    # print(dq)
    
    
    # 网络基础:
    # (1)架构:C/S架构,client客户端和server服务器端,优势在于充分发挥pc机的性能;
    # B/S架构,browers浏览器和server服务器端,统一了应用的接口
    # 1  mac地址 : 是一个物理地址,全球唯一,  类似于身份证
    # 2  ip地址:    是一个四位点分十进制,它标识了计算机在网络中的位置.类似于 学号
    # 3  交换机的通信方式:
    #          广播 : 吼一嗓子
    #          单播 : 一对一
    #          组播 : 一对多
    #  4  arp协议 :  通过目标ip地址获取目标mac地址的一个协议.
    #  5  端口 : 操作系统为本机上每一个运行的程序都随机分配一个端口,其他电脑上的程序可以通过端口获取到这个程序
    #       ip地址 + 端口 能唯一找到某台电脑上的某一个服务程序
    #  6  路由器 : 连接不同网段 , 路由
    #  7  网关   : 类似于一个局域网的出口和入口
    #  8  网段   : 一个局域网内的ip地址范围
    #  9  子网掩码 : 子网掩码 &  ip地址  得到网段
    #  10  osi 五层模型:
            # 应用层       :  http,https,ftp
            # 传输层       :  tcp / udp          四层交换机  四层路由器
            # 网络层       :  ip协议            路由器  三层交换机
            # 数据链路层   :  arp协议           以太网交换机  网卡  网桥
            # 物理层       :  传输电信号        集线器  网线   光纤
    # (2).socket模块
    # 这是一个新的模块
    # import socket
    #
    # socket
    # 又叫做套接字
    # 有很多种类型, 但是咱们只需要知道两种就可以了
    # sk = socket.socket(family=AF_INET, type=SOCK_STREAM)
    # family:
    # 一种: AF_UNIX基于文件类型的套接字(早期socket是源自于unix系统而研发的一个功能, 主要是为了同一台电脑上, 多个程序直接通信)
    # unix系统的中心思想是: 一切皆文件
    # 一种: AF_INET基于网络类型的套接字
    # type:
    # 一种是基于TCP协议
    # SOCK_STREAM
    # 一种是基于UDP协议
    # SOCK_DGRAM
    # tcp协议: 可靠的, 面向连接的, 面向字节流形式的传输方式
    # udp协议: 不可靠的, 不面向连接的, 面向数据报的传输方式, 但是它快
    # 创建服务器文件:
    #   server_.py内容如下:
    import socket
    k1=socket.socket()
    k1.bind(('192.168.12.32', 8800))
    k1.listen()
    cn,ar=k1.accept()
    ret=cn.recv(1024).decode('utf-8')
    print(ret)
    cn.close()
    k1.close()
        #client客户端文件client_.py:
    # v1=socket.socket()
    # v1.connect(('192.168.12.32', 8800))
    # v1.send('你好'.encode('utf-8'))
    # v1.close()
    
  • 相关阅读:
    [HDU1561]The more, The Better
    [洛谷P1352][codevs1380]没有上司的舞会
    【51Nod1773】A国的贸易 解题报告
    快速沃尔什变换
    【SDOI2015】序列统计 解题报告
    【CF438E】小朋友和二叉树 解题报告
    多项式Ⅰ
    洛谷 P5105 不强制在线的动态快速排序
    【BZOJ4916】神犇和蒟蒻 解题报告
    【BZOJ3309】DZY Loves Math 解题报告
  • 原文地址:https://www.cnblogs.com/zhangdaye/p/9457553.html
Copyright © 2020-2023  润新知