Python学习记录之

时间:2022-02-27 22:07:50

网络通信

  网络通信需要啥? OSI参考模型是啥? socket:

  1. 物理层
  2. 数据链路层、MAC地址
  3. 网络层、 IP地址,好了两台机器能找到了,能连上
  4. 传输层、发数据,传数据,当然ICMP在网络层,它只是发送个ping包,三次握手
  5. 会话层
  6. 表示层
  7. 应用层

 我们在开发过程中通常不需要关心怎么握手、怎么链接,这些功能已做好封装。socket

 

socket 是什么? 实例:

 1 import socket
3 client = socket.socket() # 声明socket类型,同时生成连接对象
5 client.connect(("localhost", 6969)) # 连接
7 client.send(b"Hello Word!") # 发数据
9 data = client.recv(1024) # 收数据
10 print("recv:", data)
12 client.close()

15 import socket
16 server = socket.socket()
18 server.bind(('localhost', 6969)) # 绑定要监听的端口
20 server.listen() # 监听
22 print("我开始等电话了...")
24 # server.accept() # 等电话打进来
25 conn, addr = server.accept() # 这返回两个值conn是进来的连接,addr对方的地址
26 # conn 就是客户端连过来而在服务器端为其生成的一个连接实例
28 print(conn,addr)
30 print("电话来了")
31 data = server.recv(1024) # 接收数据
33 print("SERVER:recv, ", data.upper())
35 server.send(b"goodbye")
37 server.close()