
1.socket原理
根据连接启动的方式以及本地套接字要连接的目标,套接字之间的连接过程可以分为三个步骤:服务器监听,客户端请求,连接确认。
(1)服务器监听:是服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态。
(2)客户端请求:是指由客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
(3)连接确认:是指当服务器端套接字监听到或者说接收到客户端套接字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。
伪代码:
浏览器(socket客户端):
2.
sk.socket()
sk.connect()
sk.send('我想要XX')
5.
接收
6.
连接断开
博客园(socket服务端):
1.
监听端口
while True:
3.
收到请求
4.
响应请求
用户断开
2.代码实验
from socket import * sock = socket()
sock.bind(('127.0.0.1',8080))
sock.listen(5) while True:
coon,addr = sock.accept()
data=coon.recv(8080)
print(data)
coon.send(b'hsq i L u')
coon.close()
服务器端处于监听状态,至当浏览器通过URL访问端口,服务器响应请求,返回数据。
注:chorme浏览器有监控功能功能,这里用的火狐浏览器。另,服务端和客服端的请求和应答是以字节的形式传递。
