Python教程:[14]快速创建TCP服务器
这里我不跟大家讲什么是TCP,什么是服务器,相信大家都懂,不懂的话我也没有能力让你懂,所以我就直接上代码了,在代码中解释,然后把所有的代码呈现出现,以后你只要在这个简单的代码上进行修改就可以了。
首先我们引入socket的所有属性,引入时间戳函数ctime,后面要用到时间戳
![Python教程:[14]快速创建TCP服务器](https://exp-picture.cdn.bcebos.com/e177fc9147e833e0285891b730ea3e8631485982.jpg)
设置主机地址,主机地址为空说明我们可以使用任意可以使用的地址;端口号是我随意写的,只要不超过一定的范围就可以了,你可以搜索一下端口号的范围;ADDR连接地址包括主机地址和端口号。
![Python教程:[14]快速创建TCP服务器](https://exp-picture.cdn.bcebos.com/6002c9d4483104ebec8df3bb092b74ee1d324e82.jpg)
我们使用socket方法来创建一个套接字;使用bind方法绑定到地址上;使用listen设定最多可以连接5个客户端。
![Python教程:[14]快速创建TCP服务器](https://exp-picture.cdn.bcebos.com/506d92f1d8a726336cae6157c02c56ee7a7f4482.jpg)
下面是最重要的部分,我们使用无限循环来保证随时接受链接请求,accept方法可以接受请求,并返回客户端tcpclisock和客户端地址。使用recv方法来接受数据,send方法发送数据。如果一开始接受到了数据,后来数据为空,则跳出循环。
![Python教程:[14]快速创建TCP服务器](https://exp-picture.cdn.bcebos.com/e4b5e2f5ee0d3ace85fddedf87e265e7350fbb82.jpg)
下面是所有的代码:
>>> from socket import * #引入socket的所有
>>> from time import ctime #时间戳函数,用于实现服务器的功能
>>> HOST='' #主机地址
>>> PORT=23345 #端口号
>>> BUFSIZ=2048 #缓存区大小,单位是字节,这里设定了2K的缓冲区
>>>
>>>
>>> ADDR=(HOST,PORT) #链接地址
>>>
>>> tcpSerSock=socket(AF_INET,SOCK_STREAM) #创建一个TCP套接字
>>> tcpSerSock.bind(ADDR) #绑定地址
>>> tcpSerSock.listen(5) #最大连接数为5
>>> while True: #无限循环
print('客户端连接。。。') #显示文字信息
tcpCliSock,addr=tcpSerSock.accept() #等待接受连接
print( '链接成功,客户端地址为:',addr)
while True:
data=tcpCliSock.recv(BUFSIZ) #接收数据,BUFSIZ是缓存区大小
if not data: #如果data为空
break #则跳出循环
tcpCliSock.send('[%s] %s'% (ctime(),data))
>>> tcpCliSock.close() #关闭连接
>>> tcpSerSock.close() #关闭服务器