老师,这个数据编码格式我一直不太明白,这两个函数encode和decode是什么意思,gbk还有utf-8什么意思,什么时候使用啊
运行不出来,不知哪里出现了问题
from queue import Queue from time import sleep from threading import Thread def producer(): num = 1 while True: if queue.qsize() < 5: print(f'生产{num}号,大馒头') queue.put(f'大馒头:{num}号') num += 1 else: print('馒头框满了,等待来人消费') sleep(1) def consumer(): while True: print(f'获取馒头:{queue.get()}') sleep(1) if __name__ == '__main__': queue = Queue() t1 = Thread(target=producer) t2 = Thread(target=consumer) t1.start() t2.start()
老师,那个qsize函数是什么意思,为什么我的程序超过五个了还在运行
我这是什么情况,老师,我不理解
老师这个数字格式化语句不加【0】为什么添加解码方式会报错
老师,现在啥情况,8888好像用不了了,有什么办法可以关掉它吗
老师可以讲解一下这个 self.account.money吗
TCP多线通信问题.docx
def recv_data(): while True: # 接收服务器端数据 recv_data = client_socket.recv(1024) recv_content = recv_data.decode('gbk') print(f"服务端说:{recv_content}") if recv_content == "end": print("结束接收消息") breakdef send_data(): while True: # 给服务端发消息 msg = input(">") client_socket.send(msg.encode('gbk')) if msg == "end": breakif __name__ == '__main__': client_socket = socket(AF_INET, SOCK_STREAM) client_socket.connect(("127.0.0.1", 8899)) t1 = Thread(target=recv_data) t2 = Thread(target=send_data) t1.start() t2.start() client_socket.close()
# coding=utf-8from socket import *from threading import Threaddef recv_data(): while True: recv_data = client_socket.recv(1024) recv_content = recv_data.decode('gbk') print(f"客户端说:{recv_content},来自{client_info}") if recv_content == "end": print("结束接收消息") breakdef send_data(): while True: msg = input(">") client_socket.send(msg.encode('gbk')) if msg == "end": print("结束发送消息!") breakif __name__ == '__main__': server_socket = socket(AF_INET, SOCK_STREAM) server_socket.bind(("127.0.0.1", 8899)) server_socket.listen(5) print("等待接收连接!") client_socket,client_info = server_socket.accept() print("一个客户端建立连接成功!") t1 = Thread(target=recv_data) t2 = Thread(target=send_data) t1.start() t2.start() t1.join() t2.join() client_socket.close() server_socket.close()
from multiprocessing import Process,Queue class MyProcess(Process): def __init__(self,name,mq): Process.__init__(self) self.name = name self.mq = mq def run(self): print(f"进程{self.name}开始") print(f"进程{self.name}从队列中取出{self.mq.get()}") self.mq.put(self.name) #print(f"进程{self.name}在队列中放入{self.mq.put(self.name)}") print(f"进程{self.name}结束") if __name__ == '__main__': mq = Queue() print("在队列中放入1,2,3") mq.put("1") mq.put("2") mq.put("3") q_list = [] for i in range(3): q = MyProcess(f"q{i}",mq) q.start() #q.join()
为什么q.join()注释掉会报错?不注释掉就不会报错?而且在循环中直接添加q.join(),何必费功夫去再设置一个空列表,再在循环中依次加入进程的类对象,然后在另一个循环中依次添加q.join(),这不多此一举吗?
from threading import Thread from time import sleep class Acount: def __init__(self,name,money): self.name = name self.money = money class Drawing(Thread): def __init__(self,drawingNum,account): Thread.__init__(self) self.drawingNum = drawingNum self.account = account self.expenseTotal = 0 def run(self): if self.account.money < self.drawingNum: return sleep(1)# 判断完可以取钱,则阻塞。就是为了测试发生冲突问题 self.account.momey -= self.drawingNum self.expenseTotal += self.drawingNum print(f"{self.account.name},余额是{self.account.money}") print(f"{self.account.name},总共取了{self.expenseTotal}") if __name__ == '__main__': a1 = Acount('gaoqi',100) draw1 = Drawing(80,a1)# 定义一个取钱的线程 draw2 = Drawing(80,a1)# 定义一个取钱的线程 draw1.start() draw2.start()
这个错在哪里?
#coding=utf-8from socket import *from threading import Threaddef recv_data(): while True: recv_data = client_scoket.recv(1024) print(f"收到信息:{recv_data.decode('gbk')},来自:
截屏2023-06-30 18.19.04.png
{client_info}") if recv_data == "end": breakdef send_data(): while True: msg = input(">") client_scoket.send(msg.encode("gbk"))if __name__ == "__main__": server_socket = socket(AF_INET, SOCK_DGRAM) # 建立TCP套接字 server_socket.bind("127.0.0.1", 8899) # 本机监听端口8899 server_socket.listen(5) print("等待接收") client_scoket,client_info = server_socket.accept() print("一个客户端建立连接成功") t1 = Thread(target=recv_data) t2 = Thread(target=send_data) t1.start() t2.start() t1.join() t2.join() client_scoket.close() server_socket.close()
老师 这里不是只有一个端口吗? 它这个错误是因为有多个端口?
#coding=utf-8 from socket import * from threading import Thread def recv_data(): while True: recv_data = client_scoket.recv(1024) print(f"收到信息:{recv_data.decode('gbk')},来自:{client_info}") if recv_data == "end": break def send_data(): while True: msg = input(">") client_scoket.send(msg.encode("gbk")) if __name__ == "__main__": server_socket = socket(AF_INET, SOCK_DGRAM) # 建立TCP套接字 server_socket.bind("127.0.0.1", 8899) # 本机监听端口8899 server_socket.listen(5) print("等待接收") client_scoket,client_info = server_socket.accept() print("一个客户端建立连接成功") t1 = Thread(target=recv_data) t2 = Thread(target=send_data) t1.start() t2.start() t1.join() t2.join() client_scoket.close() server_socket.close()
ISO模型与TCP/IP模型的对应关系图没有啦
老师,错误显示没有这个属性,我应该怎么弄?
这个sleep()是不执行了吗?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637