为什么使用多线程结合的话就不用写s.close(),是线程运行完自动关闭的吗?
为什么点那个绿色三角形的时候出现以下错误!右键运行的时候不会。百度看不明白。
#encoding=utf-8 from socket import * from threading import Thread s=socket(AF_INET,SOCK_DGRAM) s.bind(("127.0.0.1",8080)) def recv_data(): while True: recv_data=s.recvfrom(1024) print("等待接收数据!") udp_data=recv_data[0].decode("gbk") print(f"接收的数据:{udp_data},from{recv_data[1]}") if udp_data=="88": print("结束聊天!") break def send_data(): while True: addr = ("127.0.0.1",8989) data=input("请输入数据:") s.sendto(data.encode("gbk"),addr) if __name__=="__main__": t1=Thread(target=recv_data) t2=Thread(target=send_data) t1.start() t2.start() t1.join() t2.join()
这是什么,老师好像没讲
为什么类里面的函数名一定要是run
老师,假如信号量是2,是不是只要其中的一个线程释放资源,下一个线程就可立马抢占资源 ,而不用等到两个线程同时释放资源,后面两个才会开始调用acquire?
我想请老师看看我的思路,看一下我的理解对不对。我对这个client_socket有点疑问。就像我画的图一样,从服务端来说,是通过accept方法收到一个socket对象,命名为client_socket。在接受数据的时候是用接受到的这个client_socket对象的recv方法,发送数据也是通过这个对象的send的方法。也就是说,服务端的收发数据是以通过accept方法接收到的socket对象实现的,至于这个socket对象的命名无所谓。和自己创建的sever_socket没关系。
从客户端来说,是自己创建了一个socket对象,命名为client_socket,收发数据也是通过这个自己创建的对象相应的方法来实现的。
而这两个client_socket对象没有关系。
为什么这里要传,而线程那里不用传,是有类的原因吗
老,为什么Process.__init__(slef)不可以放在self.name=name的下面
那里为什么可以不用加else
1、这里睡着了是什么意思,线程2为什么还会判断依然是100,可以继续取钱。
2、这里初始化些什么,不使用这段代码为什么不可以
from socket import * #最简化的UDP服务端代码 from threading import Thread def recv_data(): while True: recv_data = s.recvfrom(1024) # 1024表示本次接收的最大字节数 recv_content = recv_data[0].decode('gbk') print(f"收到远程信息:{recv_content},from{recv_data[1]}") if recv_content == "88": print("结束聊天") break def send_data(): addr = ("127.0.0.1", 8888) while True: data = input("请输入:") s.sendto(data.encode("gbk"), addr) if data == "88": print("结束聊天") break if __name__ == '__main__': s = socket(AF_INET, SOCK_DGRAM) # 创建UDP的套接字 s.bind(("127.0.0.1", 9999)) # 绑定端口 t1 = Thread(target=recv_data()) t2 = Thread(target=send_data()) t1.start() t2.start() t1.join() t2.join()
老师,请问我运行的时候为啥没有请输入和收到远程信息这两个提示呢,我分开的程序就有
老师这里面run函数中的self.account.money可以被调用是因为下面使用类的组合了吧,就是draw1 = Drawing(80,a1).如果主程序中不用组合,那这里是不是就不可以调用money了?
老师这是为什么?
不理解为什么“服务端”与“客户端”这两个地方一样,我想“服务端”应为“serve_socket.sendto(msg.encode(”gbk“)),可这样运行会报错,请老师解答一下我的疑点
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637