socket 是一种经常使用的进程间通讯接口。服务器
socket object
Python 实现 socket 的主体对象是 socket.socket 类。两个互相链接的 socket 对象之间是对等的,所以他们的链接过程基本上是这样的:框架
乙方首先监听一个端口,并将本身的 ip 和 port 经过其余方式告知甲方
甲方向该 (ip, port) 发起链接请求
乙方接受此请求,链接创建成功,双方能够通讯
用代码来解释就是这样:socket
乙:code
import socket
sock = socket.socket()
sock.bind(('127.0.0.1', 2333))
sock.listen(1)
conn, addr = sock.accept() # 这里可能会阻塞
data = conn.recv(1024) # 同上
甲:server
import socket
sock = socket.socket()
sock.connect(('127.0.0.1', 2333))
sock.send(b'hello')
其中乙方的 .bind 方法就是先声明并占用一个通讯端口,这样甲方才知道第一次的链接请求应该发送到哪。而后乙方调用 .listen 方法开始监听,当甲方的 connect 请求发送过来后,调用 accept 方法便可接受甲方的链接请求,此方法返回一个新的 socket 对象(conn)和甲方的地址。对象
因此这里 type(conn) is type(soc