【Python高级编程034 ● 静态web服务器 ● 静态Web服务器-返回固定页面数据】
2021-03-27 03:27
标签:get 创建 style 解释 多个 需要 编写 table round ---------Python基础编程--------- Author : AI菌 【内容讲解】 【代码演示】 【运行结果】 【往期精彩】 ?【Python基础编程196 ● 读取文件的4种方式】 【加群交流】 【Python高级编程034 ● 静态web服务器 ● 静态Web服务器-返回固定页面数据】 标签:get 创建 style 解释 多个 需要 编写 table round 原文地址:https://www.cnblogs.com/hezhiyao/p/13669117.html
一、解释:
能够同时服务于多个客户端的TCP服务端程序
二、具体实现步骤
1、编写一个TCP服务端程序,循环等待接受客户端的连接请求
2、当客户端和服务端建立连接成功,创建子线程,使用子线程专门处理客户端的请求,防止主线程阻塞
3、把创建的子线程设置成为守护主线程,防止主线程无法退出。
"""
一、解释:
能够同时服务于多个客户端的TCP服务端程序
二、具体实现步骤
1、编写一个TCP服务端程序,循环等待接受客户端的连接请求
2、当客户端和服务端建立连接成功,创建子线程,使用子线程专门处理客户端的请求,防止主线程阻塞
3、把创建的子线程设置成为守护主线程,防止主线程无法退出。
"""
import socket
import threading
# 处理客户端请求的函数
def handle_client(new_socket, ip_port):
# 循环接收客户端的数据
while True:
# 接收客户端发送的数据
recv_data = new_socket.recv(1024)
if recv_data:
# 对二进制数据进行解码
recv_content = recv_data.decode("utf-8")
print("接收客户端的数据为:", recv_content)
# 发送数据
new_socket.send("服务端".encode("utf-8"))
else:
print("客户端下线:", ip_port)
break
# 关闭套接字
new_socket.close()
if __name__ == ‘__main__‘:
# 创建tcp服务端套接字
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 设置端口号复用,程序退出端口号立即释放
tcp_server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
# 绑定端口号
tcp_server_socket.bind(("", 9090))
# 设置监听
tcp_server_socket.listen(128)
# 循环等待接受客户端的连接请求
while True:
# 等待接受客户端的连接请求
new_socket, ip_port = tcp_server_socket.accept()
print("客户端为:", ip_port)
# 创建子线程,专门负责处理客户端请求
sub_thread = threading.Thread(target=handle_client, args=(new_socket, ip_port))
# 设置守护主线程,防止服务端无法关闭
sub_thread.setDaemon(True)
# 启动子线程执行任务
sub_thread.start()
# 提示: 服务端程序需要一直运行,所以tcp服务端的套接字可以不用关闭
# tcp_server_socket.close()
?【Python基础编程197 ● 读取文件的4种方式】
?【Python基础编程198 ● 读取文件的4种方式】
?【Python基础编程199 ● Python怎么读/写很大的文件】
?【Python基础编程200 ● 读取文件的4种方式】
?【Python基础编程201 ● 读取文件的4种方式】
?【Python基础编程202 ● 读取文件的4种方式】
?【Python基础编程203 ● 读取文件的4种方式】
文章标题:【Python高级编程034 ● 静态web服务器 ● 静态Web服务器-返回固定页面数据】
文章链接:http://soscw.com/index.php/essay/68404.html