老师这个回调函数有具体介绍吗?不清楚。。
from socket import * from threading import Thread s = socket(AF_INET, SOCK_DGRAM) # 绑定IP端口 s.bind(("", 8798)) def func1(): while True: recdate = s.recvfrom(2048) print('他说:',recdate[0].decode()) # s.close() def func2(): while True: d = input('请输入:\n') senddate = s.sendto(d.encode(), ("192.168.0.105", 8768)) # s.close() if __name__ == '__main__': t1 = Thread(target=func1) t2 = Thread(target=func2) t1.start() t2.start() #s.close()
老师啊,这个聊天室大概是这样吗,这个close()我不知道放在那里,放在方法里和放最后都会报错,
在一个非套接字上尝试操作
老师,我的网络接收器收到的消息为什么是十六进制的?
有个问题有个问题有个问题有个问题有个问题有个问题有个问题有个问题有个问题有个问题
老师,之前说python里边一切皆对象,那下边红色部分的se=Semaphore是等号左边的变量se是“信号量对象”,还是右边的`Semaphore是“信号量对象”呢?
老师,这一章UDP编程通讯协议步骤明白了,不过我好奇和其他电脑用网线通讯的话,是不是得要把这些程序做成文件形式,传给给另一台电脑,让另一台电脑打开才可以进行通讯。
然后我刚刚试了下,不知道要怎么导出程序,只能保存py格式,html导出会卡机,我想连到另一个电脑试下。
如果是传给手机需要怎么操作,把这个通讯传给手机
------------资料里的软件文件夹是空的?
#服务端 #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")
if __name__ == "__main__": print('主进程ID:{}'.format(current_process().pid)) with Manager() as mgr: m_list = mgr.list() m_dict = mgr.dict() m_list.append('Hello!!') p1 = Process(target=func,args=('p1',m_list,m_dict)) p1.start() p1.join() print(m_list) print(m_dict)老师为什么这里p1.start() p1.join() print(m_list) print(m_dict)这几句也要缩进到with 打开的Manager中
这里接收到的是元组吗?里面的信息是不是只会是两个,发送的内容和发送的地址吗?所才用recv[0]和recv[1]
为什安装有greenlet 但是无法调用咧
代码:
from threading import Thread from time import sleep class A(Thread): def __init__(self,name): Thread.__init__(self) self.name = name def run(self): print("name:"+self.name) sleep(3) print('end') t_list = [] for i in range(10): t = A('t'+str(i)) t_list.append(t) for item in t_list: item.setDaemon(True) # setDaemon 必须在start之前用 item.start() for item in t_list: item.join()
运行结果:
请问为什么会出现endend并排,以及有空行的现象?
def producer(): while True: n=yield # 利用send返回 print(f"第{n}个产品生产完毕") def consumer(): g=producer() # g 是一个生成器获得producer的地址,在此处并没有对producer进行执行 for i in range(10): next(g) # 执行g获得地址对应的对象 g.send(i) print(f"第{i}个产品被消费了") if __name__ == '__main__': consumer()
老师,和老师上课的代码相比我把next(g)代码放到了for循环中,打印出现了如下结果,请问是next会调用一次生成器但是这个时候yield没有返回值,所以打印的是none,然后send以后有返回值了,又被执行一次嘛?send一次会执行一次是吗?
from threading import Thread from time import sleep,time import threading # 线程的方法 # 方法包装 # 创建普通方法 def func1(name): print(threading.currentThread()) print("Threading:{name} start") sleep(3) print("Threading:{name} end") if __name__=="__main__": print(threading.currentThread()) # 开启时间 start=time() ''' # 创建线程 t1=Thread(target=func1,args=("t1",)) t2=Thread(target=func1,args=("t2",)) # 开启时间 start=time() # 开启线程 t1.start() t2.start() #等待t1线程执行完再往下执行 t1.join() #等待t2线程执行完再往下执行 t2.join() # func1("t1") # func1("t2") ''' thread_list=[] for i in range(100): t=Thread(target=func1,args=(f"t{i+1}",)) t.start() thread_list.append(t) for t in thread_list: t.join() #结束时间 end=time()-start print(end)
请问老师,这个print(threading.currentThread())干吗的。起到什么作用
代码是:
from socket import * import struct cmb_buf = struct.pack("!H5sb5sb",1,b"1.jpg",0,b"octet",0) udpSock = socket(AF_APPLETALK,SOCK_DGRAM) udpSock.sendto(cmb_buf,("10.2.100.167",69)) f = open("1.jpg","ab")
为什么会报错呀 老师
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637