单线程下TCP循环等待接收客户端消息
Posted zuzhuangmengxiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单线程下TCP循环等待接收客户端消息相关的知识,希望对你有一定的参考价值。
效果:
1 import socket 2 3 4 def main(): 5 while True: 6 # 创建监听套接字 7 tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 8 9 # 绑定IP和Port 10 tcp_server_socket.bind((‘‘, 7788)) 11 12 # 设置为被动监听 13 tcp_server_socket.listen(128) 14 15 # 等待客户端连接 16 print("等待客户端连接中......") 17 client_socket, client_adress = tcp_server_socket.accept() 18 print("已连接客户端:%s" % str(client_adress)) 19 20 # 再加一个循环,当客户端发出特殊指令时,再结束该客户端的连接 21 while True: 22 # 接收数据 23 recv_data = client_socket.recv(1024) 24 print(recv_data.decode(‘gbk‘)) 25 # 当客户端发送的数据有内容时,回送消息给客户端 26 if recv_data: 27 client_socket.send(‘已接收并处理‘.encode(‘gbk‘)) 28 # 当客户端关闭连接时(回送消息无数据),退出循环并关闭客户端套接字 29 else: 30 print("%s 客户端终止了连接" % str(client_adress)) 31 break 32 33 # 关闭套接字 34 client_socket.close() 35 tcp_server_socket.close() 36 37 38 if __name__ == ‘__main__‘: 39 main()
以上是关于单线程下TCP循环等待接收客户端消息的主要内容,如果未能解决你的问题,请参考以下文章
linux下,socket服务器和客户端TCP方式建立了连接,如何使它们之间相互发送消息?