day7回顾

静态方法:

与类无关,不能访问类里的任何属性和方法

类方法:

只能访问类变量

属性@property

把一个方法变成一个静态属性

反射

getattr(obj,str)

  setattr(obj,str,func)

hasattr(obj,str)

delattr(obj,str)

异常:自定义异常

raise:抓取异常

断言:

assert type(obj.name) is int

print('ddddd')

print(obj.name / 2)     断言:进行条件判断

断言:接下来程序的执行依赖于上面的判断。

socket

tcp/ip

  udp

把所有底层网络协议进行封装,只有send,recv()两个方法,不同的是收发的协议不同而已,有些收发视频,文件,音频等等。

socket服务端

server = socket.socket()   #生命一个socket协议

  server.bind((localhost,9999))   #绑定监听端口

  server.listen()    #等待链接进来

  conn,addr = server.accept()   #阻塞

  data = conn.recv(length)   #接收数据,recv默认是阻塞的

'''服务器像百度那样,这里会有算法处理,就是处理接收到的消息,在搜索引擎中查找结果,把查找的结果返回'''

  conn.send(data)   #接收消息之后进行发送消息

服务器端不能接收空的数据,接收空数据会陷入死循环,因此要进行判断。

socket客户端:

client = socket.socket()    #生成一个socket()实例

  client.connect((localhost,port))  #连接一个IP和端口号,元组形式

  client.send(data)   #发送消息

  client.recv()       #接收消息

上一篇:MySQL—查询某时间范围的数据


下一篇:解决引用openssl静态库libcrypto.a和libssl.a出现undefined reference to错误的问题