python - python socket [WinError 10038] 尝试对不是套接字的东西进行操作
问题描述
我正在用套接字编写一个小的远程控制键盘记录器...(客户端)每次执行 send_pictures_data(self,s_socket) 时我在跳回我的主循环时收到此错误...文件传输工作正常但我不知道为什么功能后套接字损坏。非常感谢任何提示。:)
def send_pictures_data(self,s_socket):
global i
print("pictures")
shutil.make_archive('pic'+str(i), 'zip', './screenshots/')
#f = open('pic.zip','rb')
#l = f.read(1024)
#while (l):
#s_socket.send(l)
#print('Sent ',repr(l))
#l = f.read(1024)
#f.close()
#s_socket.close()
file_name = 'pic'+str(i)+'.zip'
with s_socket,open(file_name,'rb') as f:
解决方案
你有with s_socket
在send_pictures_data
. with 的作用是在代码块退出时自动关闭其所有元素。因此,当with
块结束时,套接字将被关闭。解决方案:s_socket
从with
语句中删除。
推荐阅读
- kubernetes - 优先选择某些节点直到满
- php - 如何在登录该人之前使我的recaptcha需要
- mysql - 在查询中生成具有给定行数的 SQL 查询
- pygame - 在 pygame 中,密钥读取被延迟
- javascript - 在 Chrome Devtools 中监听 CSS 类的变化
- c - 在释放所有变量之前检查是否为空,但仍然出现内存错误
- r - 闪亮 - 如何显示数据框?
- google-apps-script - 工作表和日历之间的 Apps 脚本问题
- reactjs - 具有相似 url 的链接的 activeClassName
- android - Android Studio:处理来自 addGeoQueryDataEventListener 的结果的良好做法