Python中的Socket模块中的Socket()函数可以帮助我们创建手机
格式
手机 = socket(机型, 连接方式, protocol = 0)
机型:老人机(AF_UNIX), 智能机(AF_INET)
连接模式: 高清模式(SOCK_STREAM), 流畅模式(SOCK_DGRAM)
protocol一般不填,默认值为0
现在我们来创建一个TCP/IP Socket 对象
from socket import *
tcpSocket = socket(AF_INET, SOCK_STREAM)
创建一个UDP/IP Socket 对象
from socket import *
udpSocket = socket(AF_INET, SOCK_DGRAM)
所谓的Socket对象就是手机,电话号码就是主机的IP和Port。之后服务器和客户端的交流就靠这个手机来联系
创建一个TCP服务器
伪代码
from socket import *
电话 = socket() #创建一个服务电话
电话.bind(HOST, PORT) #将电话绑定到服务器上(座机)
电话.listen() #一次最多接待客户次数
listen_loop: #永不停歇地等待客户的联系
# 联系到一个客户后将连接线路转给下属来处理,服务器继续等待其他客户的连接
连接线路1 = 电话.accept()
comm_loop: #通信循环
data = 连接线路1.recv(缓冲区大小) #获取客户的请求
连接线路1.send(....data) #对请求进行处理后再发给客户
上面的recv()函数接收一个缓冲区大小的参数。因为服务器是从缓冲区接收客户端的数据的。至于什么是缓冲区?为什么要有这个?下一章会讲到。
创建一个TCP客户端
from socket import *
客户电话 = socket() #创建电话
#不用绑定,因为客户只要有电话就行,偷的抢的都不重要,你只要有手机能打的通就行
客户电话.connect(服务器的HOST,PORT) #打过去,和服务器建立联系
comm_loop: #开始对话
客户电话.send()/recv() #发送或接收数据
客户电话.close() #挂电话