python网络编程 day27 网络编程初识 ——socket
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python网络编程 day27 网络编程初识 ——socket,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3284字,纯文字阅读大概需要5分钟。
内容图文
![python网络编程 day27 网络编程初识 ——socket](/upload/InfoBanner/zyjiaocheng/611/585f3ffc2bc54dd5816121391475b28f.jpg)
一、内容回顾
1、两个内置函数(装饰器)及类中的魔术方法
-
@classmethod
-
修改绑定方法为类方法,调用方式可以是实例名.方法名()或者类名.方法名()
class Person:
County = "中国"
def __init__(self,name):
self.name = name
@property #修改绑定方法的调用方式与实例变量一样,无需加括号
def get_name(self):
return self.name
@classmethod #绑定方法修改成类方法,并且调用方式可以是实例名.方法名()或者类名.方法名()
def new_person(cls):
return cls.County +"万岁"
def hoby(self):
return "地下城"
p = Person("alex")
print(p.get_name)
print(Person.new_person())
print(p.new_person())
s = 'hoby'
if hasattr(p,s): #判断对象是否存在
if callable(getattr(p,s)): #判断对象是否可以被调用
print(getattr(p,s)()) #获取方法并加括号实现方法的调用
-
-
@staticmethod 可以用对象和类调用
-
把外部函数移动到类中,变成静态方法,并且不需要传递self值,
-
-
hasattr:判断内容是否在对象中
-
getattr :获取对象的内容
-
callable :判断对象是否可以被调用
class Person:
County = "中国"
def __init__(self,name):
self.name = name
@property #修改绑定方法的调用方式与实例变量一样,无需加括号
def get_name(self):
return self.name
@classmethod #绑定方法修改成类方法,并且调用方式可以是实例名.方法名()或者类名.方法名()
def new_person(cls):
return cls.County +"万岁"
def hoby(self):
return "地下城"
p = Person("alex")
print(p.get_name)
print(Person.new_person())
print(p.new_person())
s = 'hoby'
if hasattr(p,s): #判断对象是否存在
if callable(getattr(p,s)): #判断对象是否可以被调用
print(getattr(p,s)()) #获取方法并加括号实现方法的调用
-
双下划线new **非常重要***** 构造方法,开辟空间,实例化对象的时候在init之前执行
##########################单例模式##################
Class Person:
_instance = None
def __new__(cls,*args,**kwargs):
print("调用我啦")
if Person._instance is None:
Person._instance = super().__new__(cls)
print("开辟一个空间了哦")
return Person._instance
def __init__(self):
print("执行我啦")
p1 = Person() ###"调用我啦" ——》"开辟一个空间了哦"——》"执行我啦"
p2 = Person() ###"调用我啦" -
双下划线call:只要类中有这个call方法,这个类的对象就可以加括号
-
双下划线len 只要类中有这个方法,可以直接len函数来操作类 len(类名)
-
双下划线str :只要类中有这个方法,打印对象的时候,%s做拼接的时候,str做强制转换的时候,调用这个方法,打印这个方法的返回值
-
双下划线repr:str的备胎,%r或者repr的时候就显示这个方法的返回值
二、今日内容
1、网络基础相关的概念
-
不变的:mac地址
-
可变的:ip地址
2、地址解析协议:arp协议
3、网络编程信息交互
#############server端################
import socket
sk = socket.socket()
sk.bind(('127.0.0.1',9001))
sk.listen()
conn,addr = sk.accept()
conn.send(b'hello')
msg = conn.recv(1024)
print(msg)
conn.close()
sk.close()
?
#############client端#######################
import socket
sk = socket.socket()
sk.connect(('127.0.0.1',9001))
msg = sk.recv(1024)
print(msg)
sk.send(b'byebye')
sk.close()
4、os七层协议(应表会传网数物)
-
应用层
-
表示层
-
会话层
-
传输层
-
网络层
-
数据链路层
-
物理层
-
osi五层
-
应用层 :python代码
-
传输层:port 四层交换机
-
网络层:ipv4 ipv6 路由器 三层交换机
-
数据链路层 : mac arp协议 网卡 二层交换机
-
物理层
-
5、tcp与udp协议
-
tcp:
-
需要建立联接,才能通信
-
占用连接,可靠的传输,消息不会丢失,实时性高
-
建立联接——三次我握手
-
-
断开联接——四次挥手
-
-
-
udp:
-
不许需要建立连接,就可以通信
-
不占用联接
-
不可靠的传输,消息可能丢失
-
内容总结
以上是互联网集市为您收集整理的python网络编程 day27 网络编程初识 ——socket全部内容,希望文章能够帮你解决python网络编程 day27 网络编程初识 ——socket所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。