老师下边这个UPD报错是什么原因呢?
from socket import * 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", 9999) 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", 8888)) # 绑定端口,ip可以不写 #创建两个线程 t1 = Thread(target=recv_data) t2 = Thread(target=recv_data) t1.start() t2.start() t1.join() t2.join()
#服务端 #coding=utf-8 from socket import * #最简化的UDP服务端代码 s = socket(AF_INET,SOCK_DGRAM) #创建UDP类型的套接字 s.bind(("127.0.0.1",8888)) #绑定端口,ip可以不写 print("等待接收数据!") recv_data = s.recvfrom(1024) #1024表示本次接收的最大字节数 print(f"收到远程信息:{recv_data[0].decode('gbk')},from {recv_data[1]}") s.close() #客户端 #coding=utf-8 from socket import * #最简化的UDP客户端发送消息代码 s = socket(AF_INET,SOCK_DGRAM) #创建UDP类型的套接字 addr = ("127.0.0.1",8888) data = input("请输入:") s.sendto(data.encode("gbk"),addr) s.close()
没明白服务端和客户端这两个编码为什么要这样写:看下面
decode('gbk')和data.encode("gbk")
如下图,如果上边没有import的话;__name__== '__main__'这种形式就会引用其里边包含的内容,但是既然有了上边的import,为什么__name__== '__main__'里边的内容还在被用?
老师,之前说python里边一切皆对象,那下边红色部分的se=Semaphore是等号左边的变量se是“信号量对象”,还是右边的`Semaphore是“信号量对象”呢?
time asyncio (): i (): (i) asyncio.sleep() (): i (): (i) asyncio.sleep() (): res = asyncio.gather(func1(), func2()) (res) __name__ == : start_time = time.time() asyncio.run(main()) end_time = time.time() (end_time-start_time)
老师,你看我这段代码,,为什么报错
threading Thread time sleep MyThread(Thread): (name): Thread.() .name=name (): (.name) i (): (.namei) sleep() (.name) __name__ == : () t1=MyThread() t1.daemon=t1.start() ()
为什么设置为了守护线程 他在主程序结束后 还在运行
老师,这里这个f是什么意思,表示什么
#coding=utf-8 from threading import Thread from time import sleep def func1(name): print(f"线程{name},start")#format for i in range(3): print(f"线程: {name},{i}") sleep(3) print(f"线程{name},end") if __name__ == '__main__': print("主线程,start") #创建线程 t1 = Thread(target=func1,args=("t1")) t2 = Thread(target=func1,args=("t2")) #启动线程 t1.start() t2.start() print("主线程,end")
老师为什么我这个运行不了
from socket import * #最简化的UDP服务器代码 s=socket(AF_INET,SOCK_DGRAM)#创建UDP类型的套接字 s.bind(("127.0.0.1",8888))#绑定端口 ip可以不写 print("等待收数据") racv_data=s.recvfrom(1024)#1024表示本次接收数据最大字节 print(f"收到远程信息:{racv_data[0]},from{racv_data[1]}") s.close()
绑定端口为什么写两个圆括号呢
结果怎么跟老师不一样啊
from threading import Thread from time import sleep class Account: 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<0: return sleep(1) self.account.money -=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=Account(100,'zhaoyu') draw1=Drawing(80,a1) draw2=Drawing(80,a1) draw1.start() draw2.start()
我这个问题该怎么解决呢?
Process.__init__(self)
老师你好!这个是不是可以这样理解呢,老师(如下)
class Process(): def __init__(self):
谢谢老师!
tcp服务端绑定监听的是客户端的ip和端口吗?然后客户端连接的是服务端的ip和端口,对吗?
为什么使用多线程结合的话就不用写s.close(),是线程运行完自动关闭的吗?
为什么点那个绿色三角形的时候出现以下错误!右键运行的时候不会。百度看不明白。
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637