socket * threading Thread (): : recv_data = client_socket.recv().decode() (recv_data) (): : input_info = () input_info = client_socket.send(input_info.encode()) input_info == : __name__ == : chatroom_socket = socket(AF_INETSOCK_STREAM) chatroom_socket.bind(()) chatroom_socket.listen() client_socketsocket_info=chatroom_socket.accept() () t1 = Thread(=recv_data) t2 = Thread(=send_data) t1.start() t2.start() t1.join() t2.join() client_socket.close() chatroom_socket.close()
socket * threading Thread (): : recv_data = client_socket.recv().decode() (recv_data) (): : msg = () msg = client_socket.send(msg.encode()) msg == : __name__ == : client_socket = socket(AF_INETSOCK_STREAM) client_socket.connect(()) () t1 = Thread(=recv_data) t2 = Thread(=send_data) t1.start() t2.start() t1.join() t2.join() client_socket.close()
我打end 无法结束
from socket import * from threading import Thread def recv_data(): while True: recv_data = client_socket.recv(1024) # 最大接受1024字节 print(f'客户端说:{recv_data.decode("gbk")},来自:{client_info}') if recv_data == 'end': break def send_data(): while True: msg = input('>') client_socket.send(msg.encode('gbk')) if __name__=='__main__': server_socket = socket(AF_INET, SOCK_STREAM) # 创建TCP套接字 server_socket.bind(('127.0.0.1', 9999)) # 本机监听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 socket import * from threading import Thread def recv_data(): while True: # 接收服务端数据 recv_data = client_socket.recv(1024) # 最大接收1024字节 print(f'服务器端说:{recv_data.decode("gbk")}') def send_data(): while True: # 给服务端发消息 msg = input('>') 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', 9999)) t1 = Thread(target=recv_data()) t2 = Thread(target=send_data()) t1.start() t2.start() t1.join() t2.join() client_socket.close()
发不了也接不了消息
请问老师 是不是要同时把t1和t2都保护了才会守护主线程,不再继续下去
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(120,"wanpeng") draw1=Drawing(80,a1) draw2=Drawing(80,a1) draw1.start() draw2.start()
老师这个问题是什么原因啊
recv_data = s.recvfrom(1024)
显示这行代码报错,说是
[WinError 10022] 提供了一个无效的参数。
这个问题哪了?
怎么解决
为什么我的客户端运行不出来啊
#coding=utf-8 from socket import * from threading import Thread def recv_data(): while True: # 接收服务端数据 recv_data = client_socket.recv(1024) print(f"服务器端说:{recv_data.decode('gbk')}") def send_data(): while True: msg = input(">") 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",8899)) t1=Thread(target=recv_data()) t2=Thread(target=send_data()) t1.start() t2.start() t1.join() t2.join() client_socket.close()
socket * threading Thread (): : recv_data = client_socket.recv() (recv_data.decode()) (): : msg = () client_socket.send(msg.encode()) msg == : __name__ == : client_socket=socket(AF_INETSOCK_STREAM) client_socket.connect(()) t1=Thread(=recv_data()) t2=Thread(=send_data()) t1.start() t2.start() t1.join() t2.join() client_socket.close()
请问老师,线程力queue不需要传mq而进程需要,是不是因为进程不共享堆,所以需要告诉mq的地址呀/
这是SYN和ACK是什么意思
#coding=utf-8 from socket import * s = socket(AF_INET, SOCK_DGRAM) #创建套接字 #绑定接收信息端口 s.bind(('127.0.0.1', 8888)) #绑定一个端口,ip地址和端⼝号 print("等待接收数据!") redata = s.recvfrom(1024) #1024表示本次接收的最⼤字节数 print(redata) print(f'收到远程信息:{redata[0].decode("gbk")}, from {redata[1]}') s.close()
sub_info是什么意思
为什么这里不用写
args
呢
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637