python多线程实现TCP服务端
2019-09-03 11:25
1246 查看
本文实例为大家分享了python多线程实现TCP服务端的具体代码,供大家参考,具体内容如下
需求
1.创建一个TCP服务器接收服务端发送的信息并给予答复
2.以多线程方式实现接收客户端信息
3.间客户端发送的信息解码输出
思路分析
1.创建一个TCP客户端套接字
2.写一个接收消息的方法,可以接收客户端消息并解码输出
3.客户端被动监听,每有一个客户端连接就创建一个子线程执行接收消息方法
代码实现
# 导入模块 import socket import threading # 接收消息 def recv(client_socket, ip_port): while True: client_text = client_socket.recv(1024) # 如果接收的消息长度不为0,则将其解码输出 if client_text: print("[客户端消息]", ip_port, ":", client_text.decode("gbk")) # 给客户端响应 client_socket.send("收到\n".encode()) # 当客户端断开连接时,会一直发送''空字符串,所以长度为0已下线 else: print("客户端", ip_port, "已下线") client_socket.close() break # 程序主入口 def main(): # 创建TCP套接字 tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 设置端口复用 tcp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True) # 绑定端口 tcp_socket.bind(("", 8080)) # 设置为被动监听状态,128表示最大连接数 tcp_socket.listen(128) while True: # 等待客户端连接 client_socket, ip_port = tcp_socket.accept() print("[新客户端]:", ip_port, "已连接") # 有客户端连接后,创建一个线程将客户端套接字,IP端口传入recv函数, t1 = threading.Thread(target=recv, args=(client_socket, ip_port)) # 设置线程守护 t1.setDaemon(True) # 启动线程 t1.start() if __name__ == '__main__': main()
执行结果
接收客户端消息
响应客户端消息
客户端下线后识别
以上就是本文的全部内容,希望对大家的学习有所帮助
您可能感兴趣的文章:
相关文章推荐
- Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
- python 多线程实现多客户端连接的 TCP Server
- 用Python实现一个简单的多线程TCP服务器的教程
- python---TCP UDP IPv4 IPv6 客户端和服务端的实现
- Python实现tcp服务端和客户端通信
- python socketserver实现tcp多线程链接最简单模板
- Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
- 利用TCP和多线程实现服务端和多个客户端建立实时聊天小案例
- python代码实现tcp客户端和服务端通信演示
- Python socket 实现服务端和客户端数据传输(TCP)
- 利用多线程和TCP技术,实现客户端与服务端之间的通信
- 用Python实现一个简单的多线程TCP服务器的教程
- 基于Python多线程的TCP客户端/服务端应用示例
- python+soket实现 TCP 协议的客户/服务端中文(自动回复)聊天程序
- python tcp客户端与服务端的基本实现
- python的tcp(简单tcp服务端、客户端 ;多线程的tcp服务端)
- python实现单线程多任务非阻塞TCP服务端
- Python3 多线程的两种实现方式
- 【TCP协议练习】服务端利用多线程TCP同时接受多个客户端发送文件
- python3 实现TCPsocket传输文件(支持大文件)