python3 + socket模块实现TCP多次连接。

模拟TCP通信过程,此例多次连接,实现的功能是,客户端连接服务器21567端口,采用的连接方式是TCP,发送数据给与服务端,服务端打印出数据,然后反馈(【当前时间】发送数据)给回客户端

import socket
from time import strftime

host = ''
port = 21567
addr = (host, port)
s = socket.socket()
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind(addr)
s.listen(2)

while True:                                                    ##外循环控制客户端连接的状态。脚本的状态是开启后一直处于接收状态。
    cli_sock, cli_addr = s.accept()
    while True:
        rdata = cli_sock.recv(1024)
        rdata = rdata.decode('utf8')
        if rdata.strip() == 'quit':                            ##内循环控制数据的接收和发送。当接收到的数据为quit时,挑出循环,执行cli_sock.close()
            break
        print(rdata.strip())
        sdata = '[%s] %s' % (strftime('%H:%S:%M'), rdata)
        cli_sock.send(sdata.encode('utf8'))
    cli_sock.close()
s.close()                                                      ##因为外循环没有写控制语句,所以正常来说是不会执行这行的代码。


此例为多次连接,函数式编程,程序的执行是从上到下执行的。比较好理解。总的来说,建立服务端,接收客户端数据,反馈客户端数据,关闭客户端连接,关闭服务端连接。

发布了73 篇原创文章 · 获赞 4 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_27592485/article/details/100761031
今日推荐