如果您想了解发送图像时,Python错误:“socket.error:[Errno11]资源暂时不可用”和pythonudp发送图片的知识,那么本篇文章将是您的不二之选。我们将深入剖析发送图像时,Py
如果您想了解发送图像时,Python错误:“ socket.error:[Errno 11]资源暂时不可用”和python udp发送图片的知识,那么本篇文章将是您的不二之选。我们将深入剖析发送图像时,Python错误:“ socket.error:[Errno 11]资源暂时不可用”的各个方面,并为您解答python udp发送图片的疑在这篇文章中,我们将为您介绍发送图像时,Python错误:“ socket.error:[Errno 11]资源暂时不可用”的相关知识,同时也会详细的解释python udp发送图片的运用方法,并给出实际的案例分析,希望能帮助到您!
本文目录一览:- 发送图像时,Python错误:“ socket.error:[Errno 11]资源暂时不可用”(python udp发送图片)
- BlockingIOError: [Errno 11] 资源暂时不可用两个客户端一个服务器套接字 python
- BlockingIOError:[错误11]资源暂时不可用是什么原因造成的?
- Cygwin上使用Python 3.7的Flask / Werkzeug:BlockingIOError:[Errno 11]资源暂时不可用
- jupyter投掷错误:socket.gaierror:[Errno -2]名称或服务未知
发送图像时,Python错误:“ socket.error:[Errno 11]资源暂时不可用”(python udp发送图片)
我想制作一个程序来访问文件中的图像,对其进行编码,然后将其发送到服务器。比服务器应该对图像进行解码,然后将其保存到文件中。我测试了图像编码本身,并且可以正常工作,因此问题出在服务器和客户端连接上。
这是服务器:
import socket
import errno
import base64
from PIL import Image
import StringIO
def connect(c):
try:
image = c.recv(8192)
return image
except IOError as e:
if e.errno == errno.EWOULDBLOCK:
connect(c)
def Main():
host = '138.106.180.21'
port = 12345
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM,socket.IPPROTO_TCP)
s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
s.bind((host,port))
s.listen(1)
while True:
c,addr = s.accept()
c.setblocking(0)
print "Connection from: " + str(addr)
image = c.recv(8192)#connect(c)
imgname = 'test.png'
fh = open(imgname,"wb")
if image == 'cusdom_image':
with open('images.png',"rb") as imageFile:
image = ''
image = base64.b64encode(imageFile.read())
print image
fh.write(image.decode('base64'))
fh.close()
if __name__ == '__main__':
Main()
这是客户:
import socket
import base64
from PIL import Image
import StringIO
import os,sys
ip = '138.106.180.21'
port = 12345
print 'Add event executed'
s = socket.socket()
s.connect((ip,port))
image_path = '/home/gilgamesch/Bilder/Bildschirmfoto.png'
print os.getcwd()
olddir = os.getcwd()
os.chdir('/')
print os.getcwd()
if image_path != '':
with open(image_path,"rb") as imageFile:
image_data = base64.b64encode(imageFile.read())
print 'open worked'
else:
image_data = 'cusdom_image'
os.chdir(olddir)
s.send(image_data)
s.close()
错误消息是:
Traceback (most recent call last):
File "imgserv.py",line 49,in <module>
Main()
File "imgserv.py",line 34,in Main
image = c.recv(8192)#connect(c)
socket.error: [Errno 11] Resource temporarily unavailable
BlockingIOError: [Errno 11] 资源暂时不可用两个客户端一个服务器套接字 python
如何解决BlockingIOError: [Errno 11] 资源暂时不可用两个客户端一个服务器套接字 python?
我试图简单地将消息从两个客户端套接字发送到一个服务器套接字。当我启动服务器套接字时,它工作正常,然后当我启动两个客户端套接字中的每一个时(我使用 3 个不同的终端窗口),一切正常。如果我启动服务器和一个客户端,我可以从客户端向服务器发送消息。如果我然后启动第二个客户端,我可以从第二个客户端向服务器发送消息,但是现在如果我返回并尝试将消息从第一个客户端发送到服务器,我会收到“ BlockingIOError: [Errno 11]资源暂时不可用”。有什么问题?
clientclass.py:
from itertools import count
import select
import random
import threading
import time
class Client(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.host = "127.0.0.1"
self.port = 65432
def run(self):
self.sock = socket.socket(socket.AF_INET,socket.soCK_STREAM)
self.id = random.randrange(0,1000)
print(f"client id {self.id} connected")
self.sock.connect((self.host,self.port))
while True:
text = input(''m: '')
self.sock.sendall(text.encode())
server.py:
import socket
from itertools import count
import select
from _thread import start_new_thread
import threading
import time
from queue import Queue
class server(threading.Thread):
def __init__(self):
self.host = "127.0.0.1"
self.port = 65432
threading.Thread.__init__(self)
def run(self):
self.sock = socket.socket(socket.AF_INET,socket.soCK_STREAM)
self.sock.setsockopt(socket.soL_SOCKET,socket.so_REUSEADDR,1)
self.sock.bind((self.host,self.port))
self.sock.listen(5)
self.sock.setblocking(0)
print(f"server instantiated")
inputs = [self.sock]
outputs = []
message_queues = {}
while inputs:
inputready,outputready,exceptready = select.select(inputs,outputs,inputs)
for input_item in inputready:
if input_item is self.sock:
conn,addr = self.sock.accept()
print("New connection from: ",addr)
conn.setblocking(0)
inputs.append(conn)
else:
data = conn.recv(1024)
if data:
print("Client: " + data.decode())
#message_queues[input_item].put(data)
if input_item not in outputs:
outputs.append(input_item)
else:
if input_item in outputs:
outputs.remove(input_item)
inputs.remove(input_item)
input_item.close()
class Message_Sender(threading.Thread):
def __init__(self,client):
threading.Thread.__init__(self)
self.client = client
def run(self):
while True:
text = input(''m: '')
server.conn.sendall(text.encode())
server = server()
server.start()
msg = Message_Sender(server)
msg.start()
客户端实例:
import clientclass
client = clientclass.Client()
client.start()
解决方法
我看到了你的代码,我想我已经解决了你可能遇到的问题 我以某种方式更改了一些代码 它同时接收多个客户端 服务器.py:
import socket
from itertools import count
import select
from _thread import start_new_thread
import threading
import time
from queue import Queue
class server(threading.Thread):
def __init__(self):
self.host = "127.0.0.1"
self.port = 65432
threading.Thread.__init__(self)
def run(self):
self.sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
self.sock.bind((self.host,self.port))
print(f"server instantiated")
inputs = [self.sock]
outputs = []
message_queues = {}
while True:
self.sock.listen(5)
conn,addr = self.sock.accept()
receive = threading.Thread(target=self.receive_data,args=(conn,))
receive.start()
inputs.append(conn)
def receive_data(self,conn):
while True:
data = conn.recv(1024)
if data:
print("Client: " + data.decode())
# do something
class Message_Sender(threading.Thread):
def __init__(self,client):
threading.Thread.__init__(self)
self.client = client
def run(self):
while True:
text = input(''m: '')
server.conn.sendall(text.encode())
server = server()
server.start()
msg = Message_Sender(server)
msg.start()
我在 run 函数中做了一个循环,当有人尝试连接时,它会创建一个新线程来接收他们的消息。我不清楚您想对变量输入和输入项等做什么。但我认为你可以做到这一点。如果您仍有任何问题,请随时与我们联系。
BlockingIOError:[错误11]资源暂时不可用是什么原因造成的?
如何解决BlockingIOError:[错误11]资源暂时不可用是什么原因造成的??
第115次迭代后,有时还会出现更多错误:
pid = os.fork() BlockingIOError: [Errno 11] Resource temporarily unavailable
这是程序代码:
for i in range(600):
pid = os.fork()
print(str(i) + " Create pid = " + str(pid) + " getpid = " + str(os.getpid()))
if pid == 0:
print(str(i) + " Child process pid = " + str(pid) + " getpid = " + str(os.getpid()))
print(str(i) + " Kill pid = " + str(pid) + " getpid = " + str(os.getpid()))
os.kill(os.getpid(),9)
else:
print(str(i) + " Parent process pid = " + str(pid) + " getpid = " + str(os.getpid()))
print(str(i) + " End process pid = " + str(pid) + " getpid = " + str(os.getpid()))
我无法编写os.waitpid,因为有必要在循环交互结束时,程序不会停止,而是继续运行。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)
Cygwin上使用Python 3.7的Flask / Werkzeug:BlockingIOError:[Errno 11]资源暂时不可用
在正确的Cygwin安装中,共享库始终在比fork失败的情况下更高的地址上运行。
要查看预期范围,可以查看基址数据库。
在我当前的系统上:
$ rebase -si | awk '{ print $3,$1}' |sort |head -n 5
0x0003ce2c0000 /usr/libexec/coreutils/libstdbuf.so
0x0003ce2d0000 /usr/lib/texinfo/XSParagraph.dll
0x0003ce2e0000 /usr/lib/texinfo/Parsetexi.dll
0x0003ce310000 /usr/lib/texinfo/MiscXS.dll
0x0003ce320000 /usr/lib/sasl2_3/cygscram-3.dll
$ rebase -si | awk '{ print $3,$1}' |sort -r |head -n 5
0x0003fffd0000 /usr/bin/cygEGL-1.dll
0x0003fffa0000 /usr/bin/cygEMF-1.dll
0x0003fff20000 /usr/bin/cygFLAC-8.dll
0x0003ffea0000 /usr/bin/cygGL-1.dll
0x0003ffe30000 /usr/bin/cygGLU-1.dll
因此,或者您的数据库已损坏并且重新设置基准未正确执行,或者BLODA正在干扰正确加载dll。
jupyter投掷错误:socket.gaierror:[Errno -2]名称或服务未知
我在AWS EMR上运行pyspark集群,并将Jupyter用于pyspark驱动程序。最近,脚本失败。Jupiter无法启动服务器。我conda
install jupyter
从开始安装sudo initctl start jupyter
。群集运行正常。这是服务器的配置值。
# jupyter configs
mkdir -p ~/.jupyter
touch ls ~/.jupyter/jupyter_notebook_config.py
HASHED_PASSWORD=$(python -c "from notebook.auth import passwd;
print(passwd('$JUPYTER_PASSWORD'))")
echo "c.NotebookApp.password = u'$HASHED_PASSWORD'" >> ~/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.open_browser = False" >> ~/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.ip = '*'" >> ~/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.notebook_dir = '/mnt/$BUCKET/$FOLDER'" >> ~/.jupyter/jupyter_notebook_config.py
echo "c.ContentsManager.checkpoints_kwargs = {'root_dir': '.checkpoints'}" >> ~/.jupyter/jupyter_notebook_config.py
echo "c.NotebookApp.port = 8080" >> ~/.jupyter/jupyter_notebook_config.py
今天的关于发送图像时,Python错误:“ socket.error:[Errno 11]资源暂时不可用”和python udp发送图片的分享已经结束,谢谢您的关注,如果想了解更多关于BlockingIOError: [Errno 11] 资源暂时不可用两个客户端一个服务器套接字 python、BlockingIOError:[错误11]资源暂时不可用是什么原因造成的?、Cygwin上使用Python 3.7的Flask / Werkzeug:BlockingIOError:[Errno 11]资源暂时不可用、jupyter投掷错误:socket.gaierror:[Errno -2]名称或服务未知的相关知识,请在本站进行查询。
本文标签: