Python3.7 创建TCP服务端,使用多线程同时和多个客户端通信

Python3.7 创建TCP服务端,使用多线程同时和多个客户端通信

最近想了解一下HTTP和HTTPS相关的协议,发现对于其中的传输层了解的不够,所以干脆用Python创建一个服务端,后续如果需要用到的话,可以直接使用这些代码。在这里小小的记一下吧。

from socket import *
from time import ctime
from threading import Thread

#主要是建立TCP服务端,可以和客户端持续通信
def TCP_Server(tcpClient):
        while 1:
            try:
                data = tcpClient.recv(4096)
            except:
                print('客户端{0}断开连接'.format(tcpClient.getpeername()))
                break
            data=data.decode('gb2312')  #解码
            if data=='quit':
                print('客户端{0}断开连接'.format(tcpClient.getpeername()))
                break
            print(data)
            buf = '[' + ctime() + ']' + data
            tcpClient.send(buf.encode('gb2312'))  #编码
        tcpClient.close()

if __name__=='__main__':
    tcpServer = socket(AF_INET, SOCK_STREAM)   #创建TCP的套接字
    local_host = ('10.110.25.20', 9051)        #创建服务端的IP及端口
    tcpServer.bind(local_host)                 #绑定IP及端口
    tcpServer.listen(10)                       #使服务端进入监听状态,最多可连接10个客户端
    while 1:
        tcpClient, addr = tcpServer.accept()   #接受客户端的连接,获取客户端的信息
        print('客户端{0}已建立连接'.format(tcpClient.getpeername()))
        #创建多线程,每接受一个客户端的连接,就建立一个线程进行处理
        t = Thread(target=TCP_Server,args=(tcpClient,))
        t.daemon = True
        t.start()

这只是一个简单的使用,客户端直接使用的网络助手,距离实际使用肯定还有很多未考虑的地方,等以后用到了或者遇到了再写吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值