socketServer
-
什么是socket
socket又叫套接字,是实现连接的两个端
套接字分为服务器套接字和客户端套接字。服务器套接字会绑定一个固定的IP等待客户端连接,正常情况下一个服务器可以同时和多个客户端保持连接;客户端套接字不需要绑定IP,在需要的时候主动连接服务器套接字
-
socket编程
用代码实现能够通信的服务器和客户端
python中提供了一个socket模块专门用来支持socket编程
-
服务器套接字
-
创建套接字对象
socket(family,type) - 创建套接字对象
family - IP地址类型:AF_INET(ipv4)、AF_INET6(ipv6)
type - 传输协议类型:SOCK_STREAM(TCP)、SOCK_DGRAM(UDP)
-
绑定IP和端口
套接字对象.bind((ip地址,端口号))
IP地址 - 字符串,运行当前服务器程序的计算机的IP地址
端口号 - 整数,范围为065535,其中01024是著名端口(同一时间用一台计算机不能同时使用相同端口)。端口就是用来区分同一台计算机上的不同服务(程序)
-
监听请求
套接字对象.listen(最大通信的数量)
-
等待客户端连接
-
接受客户端的请求 - 这句代码会阻塞线程,直到有客户端的请求才会执行
connect, address = 套接字对象.accept()
-
接收消息
connect.recv(一次性能够接收的最大字节数) - 返回值就是接收到的数据
-
发送消息
connect.send(发送的数据)
-
关闭连接
connect.close()
-
socketClient
客户端套接字
-
创建套接字
套接字对象 = socket()
-
向服务器发送请求(与服务器向对应,服务器先接收客户端就先发送,服务器先发送客户端就先接收)
套接字对象.connect((服务器中绑定的IP地址,服务器中绑定的端口号))
-
发送消息
套接字对象.send(发送的数据)
-
接收消息
套接字对象.recv(一次接收的最大字节数)