python socketserver调用MyRequestHandller函数
python socketserver MyRequestHandller call a function
在python中,我使用socketserver创建了一个socketserver,当我想在handle方法中调用一个函数时,显示该函数没有定义,这是为什么?
代码如下:
from socketserver import (TCPServer as TCP, StreamRequestHandler as SRH)
HOST = ''
PORT = 21567
ADDR = (HOST,PORT)
BUFSIZ = 1024
class MyRequestHandler(SRH):
def handle(self):
print('connected from:',self.client_address)
check()
tcpServ = TCP(ADDR, MyRequestHandler)
print('waiting for connection...')
tcpServ.serve_forever()
def check():
print('success')
那是因为
tcpServ.serve_forever()
块和
def check():
print('success')
从未达到。将 tcpServ.serve_forever()
调用移动到文件底部(或者更一般地说,将其作为对 运行 的最后命令)。
函数 "check()" 实际上应该是 class MyRequestHandler 的方法,而不是 class 范围之外的函数。
应该可行:
from socketserver import (TCPServer as TCP, StreamRequestHandler as SRH)
HOST = ''
PORT = 21567
ADDR = (HOST,PORT)
BUFSIZ = 1024
class MyRequestHandler(SRH):
def handle(self):
print('connected from:',self.client_address)
self.check()
def check(self):
print('success')
tcpServ = TCP(ADDR, MyRequestHandler)
print('waiting for connection...')
tcpServ.serve_forever()
在python中,我使用socketserver创建了一个socketserver,当我想在handle方法中调用一个函数时,显示该函数没有定义,这是为什么?
代码如下:
from socketserver import (TCPServer as TCP, StreamRequestHandler as SRH)
HOST = ''
PORT = 21567
ADDR = (HOST,PORT)
BUFSIZ = 1024
class MyRequestHandler(SRH):
def handle(self):
print('connected from:',self.client_address)
check()
tcpServ = TCP(ADDR, MyRequestHandler)
print('waiting for connection...')
tcpServ.serve_forever()
def check():
print('success')
那是因为
tcpServ.serve_forever()
块和
def check():
print('success')
从未达到。将 tcpServ.serve_forever()
调用移动到文件底部(或者更一般地说,将其作为对 运行 的最后命令)。
函数 "check()" 实际上应该是 class MyRequestHandler 的方法,而不是 class 范围之外的函数。
应该可行:
from socketserver import (TCPServer as TCP, StreamRequestHandler as SRH)
HOST = ''
PORT = 21567
ADDR = (HOST,PORT)
BUFSIZ = 1024
class MyRequestHandler(SRH):
def handle(self):
print('connected from:',self.client_address)
self.check()
def check(self):
print('success')
tcpServ = TCP(ADDR, MyRequestHandler)
print('waiting for connection...')
tcpServ.serve_forever()