Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python异步IO资源不可用_Python_Asynchronous_Exception Handling_Server_Python Asyncio - Fatal编程技术网

Python异步IO资源不可用

Python异步IO资源不可用,python,asynchronous,exception-handling,server,python-asyncio,Python,Asynchronous,Exception Handling,Server,Python Asyncio,我有一个python服务器,它应该连续发送数据并等待客户端的提示停止、设置变量或传输日志文件的内容。目前,我正试图恢复客户端的提示 我正试图利用asyncio执行此操作,但遇到以下错误: (,BlockingIOError(11,“资源暂时不可用”),) 我的服务器代码是: loop = asyncio.get_event_loop() async def server(): s = socket.socket(socket.AF_INET,socket.SOCK_STREAM

我有一个python服务器,它应该连续发送数据并等待客户端的提示停止、设置变量或传输日志文件的内容。目前,我正试图恢复客户端的提示

我正试图利用asyncio执行此操作,但遇到以下错误:

(,BlockingIOError(11,“资源暂时不可用”),)

我的服务器代码是:

loop = asyncio.get_event_loop()

async def server():
        s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

        host = ''
        port = 1194

        s.bind((host,port))
        print ("bouned to port")
        s.listen(4)
        while True:

                conn, addr = await loop.sock_accept(s)

                if conn:
                        print ("connected to address: {!r}".format(addr))
#                        print (conn)
                        d = loop.create_task(temp_sender(conn))
                        try:
                            await d
                        except StopIteration:
                            pass
async def temp_sender(conn):
        print("temp_sender activated")

        try:
                data = await conn.recv(1024)
                print (data)
                sdata = data.decode()
                print (sdata)
                conn.writeline("the set temp is: ", sdata)
        except:
                print (sys.exc_info())
                pass
尝试从conn接收数据时,temp_sender函数中出现错误


如何修复此可用性错误?

请用所用编程语言标记问题
import asyncio
@asyncio.coroutine
def handle_echo(reader, writer):
    data = yield from reader.read(1024)
    # reader reads from client
    #writer writes to client

    message = data
    addr = writer.get_extra_info('peername')
    print("Received %r from %r" % (message, addr))

    print("Send: %r" % message)
    writer.write(data)
    yield from writer.drain()

    print("Closing client socket")
    writer.close()

loop = asyncio.get_event_loop()
##the code below will run whenever a new client connects ( multiple at a time) 
coro = asyncio.start_server(handle_echo, '127.0.0.1',1194, loop=loop)
server = loop.run_until_complete(coro)

# Serve requests until Ctrl+C is pressed
print('Serving on {}'.format(server.sockets[0].getsockname()))
try:
    loop.run_forever()
except KeyboardInterrupt:  #server stops on a keyboard interrupt
    pass

# Closing the server
server.close()
loop.run_until_complete(server.wait_closed())
loop.close()