一、socket定义
socket翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把 TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。
socket抽象层在网络中的位置
二、socket通信过程
三、socket基本通信程序
1.服务器
import socket
# 创建了一个基于ipv4,tcp协议的socket对象
server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
server.bind(('0.0.0.0',6666))
server.listen()
# 接收客户端的连接,创建socket连接对象,并且返回客户端的连接地址信息
# 阻塞
sock,addr = server.accept()
# 接收客户端发送的数据,1024指每次接收数据的大小
data = sock.recv(1024)
# 通过sock传入的是bytes类型的数据,需要解码才能正确显示
print(data.decode())
sock.send(('hello,{}'.format(data.decode())).encode())
server.close()
sock.close()
2.客户机
import socket
client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
client.connect(('127.0.0.1',6666))
client.send('hello world'.encode())
data = client.recv(1024)
print(data.decode())
client.close()
3.运行结果