连接时出现 Python SocketServer 错误

标签 python python-3.x typeerror socketserver

我正在使用 Python 3.1 中的 socketserver 模块运行 Python 服务器。每次我从客户端(客户端成功)获得连接时,我的服务器都会收到一个错误。这是我的代码:

import socket
import socketserver
import string
import struct

class Server(socketserver.BaseRequestHandler):
    def __init__(self):
        self.address = self.client_address[0]
        print("%s connected." % str(self.address[1]))
    def handle(self):
        message = self.request.recv(1024).decode().strip()
        print("%s sent: '%s'" % (self.address,message))

if __name__ == "__main__":
    server = socketserver.TCPServer(("localhost",22085), Server)
    print("Socket created. . .")
    print("Awaiting connections. . .")
    server.serve_forever()

这是我的错误:

----------------------------------------
Exception happened during processing of request from ('127.0.0.1', 49669)
----------------------------------------
Traceback (most recent call last):
  File "C:\Python31\lib\socketserver.py", line 281, in _handle_request_noblock
    self.process_request(request, client_address)
  File "C:\Python31\lib\socketserver.py", line 307, in process_request
    self.finish_request(request, client_address)
  File "C:\Python31\lib\socketserver.py", line 320, in finish_request
    self.RequestHandlerClass(request, client_address, self)
TypeError: __init__() takes exactly 1 positional argument (4 given)

我注意到错误的奇怪之处在于它在第二行给出的端口与我正在使用的端口不同。我不太确定这里的错误是什么......

感谢您的帮助。

最佳答案

尝试调用父类(super class)的 __init__ 方法:

class Server(socketserver.BaseRequestHandler):
    def __init__(self):
        self.address = self.client_address[0]
        print("%s connected." % str(self.address[1]))
        super(Server,self).__init__()                  # Init your base class

关于连接时出现 Python SocketServer 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5525915/

相关文章:

python - 从 Pandas Dataframe Column 中删除重复的逗号换句话说,我只需要列中的文本用逗号分隔它们

python - 如何以编程方式更改 Tkinter 标签的颜色?

python - 如何比较 2 个不同的 csv 文件并在没有 CSV-diff 的情况下输出差异

python - 导入库的正确方法是什么?

javascript - 出现类型错误,提示我的 websocket 变量未定义

list - 类型错误:列表索引必须是整数,而不是 float

javascript - req.send ('null' ) 不是 Node.js mySQl 的函数

python - 以编程方式将许多参数及其名称作为键添加到字典的最快方法

python - 元素更改后列表不会更改

python - 通过 PIP 使用 MKL 安装 Scipy