关于python的几个问题

1、为什么Django的后端程序不能开多进程?

2、Pthon Socket的服务端程序开多进程,开多线程

服务端

import time
import socket
from multiprocessing import Process, Queue
import threading


def run(queue,flag):
    idx = 1
    while True:
        idx = idx + 1

        if queue.full():
            queue.get(idx)
        queue.put(idx)
        print(f"this is run: {idx}")
        time.sleep(1)

        f = flag.get()
        if f == 1:
            flag.put(1)
        else:
            break
            
ip_port = ('127.0.0.1', 8080)
sk = socket.socket()            # 创建套接字
sk.bind(ip_port)                # 绑定服务地址
sk.listen(5)                    # 监听连接请求
print('启动socket服务,等待客户端连接...')
conn, address = sk.accept()     # 等待连接,此处自动阻塞

print('客户端连接成功')
queue = Queue(2)
flag = Queue(2)
flag.put(1)

prun = Process(target = run,args = (queue, flag))
prun.start()

# thread_server=threading.Thread(target=run,args=(queue,flag,))
# thread_server.start()

while True:     # 一个死循环,直到客户端发送‘exit’的信号,才关闭连接
    client_data = conn.recv(1024).decode()      # 接收信息
    if client_data == "exit":       # 判断是否退出连接
        flag.put(0)
        sk.close()  # 关闭连接
        exit("通信结束")
        
    print("来自%s的客户端向你发来信息:%s" % (address, client_data))
    print(f"{queue.qsize()}, {flag.qsize()}")
    a = queue.get()
    conn.sendall(f'{a}'.encode())    # 回馈信息给客户端

客户端

import socket

ip_port = ('127.0.0.1', 8080)
s = socket.socket()     # 创建套接字
s.connect(ip_port)      # 连接服务器

while True:     # 通过一个死循环不断接收用户输入,并发送给服务器
    inp = input("请输入要发送的信息: ").strip()
    if not inp:     # 防止输入空信息,导致异常退出
        continue
    s.sendall(inp.encode())
    
    if inp == "exit":   # 如果输入的是‘exit’,表示断开连接
        print("结束通信!")
        break

    server_reply = s.recv(1024).decode()
    print(server_reply)
s.close()       # 关闭连接
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值