会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 128778个问题
Python 全系列/第三阶段:Python 网络与并发编程/网络通信 91楼

2.png

Python 全系列/第三阶段:Python 网络与并发编程/网络通信 92楼

from multiprocessing import Process, Queue
from time import sleep
#encoding=utf-8


class MyProcess(Process):
    def __init__(self, name, mq):
        Process.__init__(self)
        self.name = name
        self.mq = mq

    def run(self):
        print(f'Process:{self.name},start')
        print(f'get Data:{self.mq.get()}')
        self.mq.put(self.name)
        sleep(3)
        print(f'Process:{self.name},end')


if __name__ == '__main__':
    mq = Queue()
    mq.put('1')
    mq.put('2')
    mq.put('3')
    p_list = []
    for i in range(3):
        p = MyProcess(f'p{i}',mq)
        p_list.append(p)
    for p in p_list:
        p.start()

C:\Users\kjin\PycharmProjects\pythonProject\venv\Scripts\python.exe C:\Users\kjin\PycharmProjects\pythonProject\queue.py 

Traceback (most recent call last):

  File "C:\Users\kjin\PycharmProjects\pythonProject\queue.py", line 21, in <module>

    mq = Queue()

         ^^^^^^^

  File "C:\Users\kjin\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\context.py", line 102, in Queue

    from .queues import Queue

  File "C:\Users\kjin\AppData\Local\Programs\Python\Python311\Lib\multiprocessing\queues.py", line 21, in <module>

    from queue import Empty, Full

ImportError: cannot import name 'Empty' from 'queue' (C:\Users\kjin\PycharmProjects\pythonProject\queue.py)


Process finished with exit code 1

Python 全系列/第三阶段:Python 网络与并发编程/并发编程 94楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 95楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 96楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 98楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 99楼
Python 全系列/第三阶段:Python 网络与并发编程/并发编程 100楼
Python 全系列/第三阶段:Python 网络与并发编程/网络通信 101楼

#coding=utf-8
from socket import *
from threading import Thread

def recv_data():
    while True:
        recv_data = client_socket.recv(1024).decode('gbk')
        print(f"客户端信息{recv_data}")

def send_data():
    while True:
        input_info = input("服务器发送消息:")
        input_info = client_socket.send(input_info.encode("gbk"))
        if input_info == "end":
            break

if __name__ == '__main__':
    chatroom_socket = socket(AF_INET,SOCK_STREAM)
    chatroom_socket.bind(("127.0.0.1",8850))
    chatroom_socket.listen()
    client_socket,socket_info=chatroom_socket.accept()
    print('服务器等待客户端连接')
    t1 = Thread(target=recv_data)
    t2 = Thread(target=send_data)
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    client_socket.close()
    chatroom_socket.close()
    
    
#coding=utf-8
from socket import *
from threading import Thread

def recv_data():
    while True:
        recv_data = client_socket.recv(1024).decode('gbk')
        print(f"服务器信息:{recv_data}")

def send_data():
    while True:
        msg = input("客户端发送消息:")
        msg = client_socket.send(msg.encode("gbk"))
        if msg == "end":
            break

if __name__ == '__main__':
    client_socket = socket(AF_INET,SOCK_STREAM)
    client_socket.connect(("127.0.0.1",8850))
    print("客户端器连接服务器")
    t1 = Thread(target=recv_data)
    t2 = Thread(target=send_data)
    t1.start()
    t2.start()
    t1.join()
    t2.join()
    client_socket.close()

image.pngimage.png

输入end无法结束


Python 全系列/第三阶段:Python 网络与并发编程/网络通信 105楼

百战程序员微信公众号

百战程序员微信小程序

©2014-2024 百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637