前言:
在我们的IT海洋里,服务端是怎么和客户端建立连接,以及传输信息的呢?
话不多说,请往下看~
一、Socket通信流程
Socket是基于TPC/IP协议,属于OSI七层模型中的传输层
而websocket是基于HTTP协议,属于OSI七层模型中的应用层
下面引导大家的,就是建立简单的Socket连接
二、建立简单的Socket连接
上述为脑图,接下来在python中实操
服务端代码演示
# 服务端
import socket # 导入socket模块
ip_port = ('127.0.0.1',9999) # ip or port
# port 就是端口,也可以理解为一个进程,它的范围是在0~65535个
# 1 - 创建套接字对象
sk = socket.socket()
# 2- bind ip or port
sk.bind(ip_port)
# 3- 开启监听
sk.listen()
print('---服务已经启动---')
#4- 阻塞,等待连接 返回套接字(conn)和客户端的ip(addr)
conn,addr = sk.accept()
print('客户端地址>>>',addr)
#5- 接收数据---客户端数据
client_data = conn.recv(1024).decode('utf-8')
print('接收的客户端数据>>>',client_data)
#6- 发送数据
send_data = input('请输入>>>')
conn.sendall(send_data.encode('utf-8')) # 要求是byte类型
#7- 关闭socket
conn.close()
客户端代码演示
#客户端
import socket # 导入socket模块
# 1 - 创建套接字对象
sk = socket.socket()
# 2- 连接服务端
sk.connect(('127.0.0.1',9999))
#3- 发送数据---客户端数据
send_data = input("请输入>>>>")
sk.sendall(send_data.encode('utf-8'))
#4- 接收数据--服务端数据
server_data = sk.recv(1024)
print('接收的客户端数据>>>',server_data)
#7- 关闭socket
sk.close()
写的略微粗糙,后续会跟进这方面的博文
希望大家要多敲、多练习