python-网络编程

Posted 水晶冰洛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-网络编程相关的知识,希望对你有一定的参考价值。

1.osi五层协议

# 应用层
    # 传输层
        # tcp协议 : 效率低 面向连接可靠全双工的通信
            # 三次握手
                # 客户端向服务器端发送syn请求,
                # 服务端向客户端回复ack并发送syn请求,
                # 客户端接收到请求之后再回复ack表示建立连接
                # 由客户端的connect + 服务端的accept
            # 四次挥手
                # 客户端向服务端发送fin请求,
                # 服务端回复ack确认
                # 服务端向客户端发送fin请求,
                # 客户端回复ack确认
                # 有客户端的close和服务端的close
        # udp协议 : 效率高 无连接的不可靠
        # 四层交换机 四层路由器
    # 网络层
        # ip协议(ipv4 ipv6)
        # 路由器三层交换机
    # 数据链路层
        # arp协议 地址解析协议 通过ip找到mac地址
        # 交换机网卡 : 单播 广播 组播
    # 物理层

2  b/s c/s架构

 C/S   client server
 B/S   browser server

 

3.简单的网络通信

#server服务端

import socket  #炒茄子

sk = socket.socket()          # 创建一个server端的对象
sk.bind((127.0.0.1,9001))  # 给server端绑定一个地址 ,可以写自己的IP地址
sk.listen()                   # 开始监听(可以接收)客户端给我的连接了

conn,addr = sk.accept()  # 建立连接 conn是连接,ADDR是地址,也可以不写这个变量
conn.send(bhello)   #联上后,进行通信
msg = conn.recv(1024) #1024 表示最多接收1024个字
print(msg)
conn.close()     # 关闭连接

sk.close()  #关掉服务
client客户端
import socket

sk = socket.socket()   #实例化对象
sk.connect((127.0.0.1,9001))  #联接server端


msg = sk.recv(1024)   #1024 表示最多接收1024个字
print(msg)
sk.send(bbyebye)

sk.close()

 

以上是关于python-网络编程的主要内容,如果未能解决你的问题,请参考以下文章

常用python日期日志获取内容循环的代码片段

python 有用的Python代码片段

Python 向 Postman 请求代码片段

VSCode自定义代码片段——JS中的面向对象编程

python [代码片段]一些有趣的代码#sort

VSCode自定义代码片段9——JS中的面向对象编程