TypeError未能找到服务器,python-无法找出TypeError:__init __()恰好接受3...

在开发一个多客户端/服务器聊天应用程序时,使用Kivy和Twisted框架,作者遇到了在服务器端显示客户端输入的问题。具体错误出现在`MultiClientEcho`类的`__init__`方法中,由于参数不匹配导致TypeError。源代码是从Kivy官方文档中改编的,原本工作正常,但修改协议类后出现问题。作者寻求解决服务器端打印客户端输入的代码调整方案。
摘要由CSDN通过智能技术生成

我正在开发一个多客户端/服务器聊天应用程序,该应用程序可以将一个客户端的输入写入多个客户端.对于客户端来说,它运行良好,但是对于服务器端,我想添加一个部分,使其可以在自己的屏幕上打印出来自客户端的输入.当我在处理它时,我遇到init()问题,它的“ self.app = app”行恰好包含3个论点(给出2个)

这是我的代码

import kivy

from kivy.app import App

from kivy.uix.label import Label

from kivy.uix.boxlayout import BoxLayout

from kivy.uix.button import Button

from kivy.support import install_twisted_reactor

install_twisted_reactor()

from twisted.internet import reactor

from twisted.internet.protocol import Protocol, Factory

class MultiClientEcho(Protocol):

def __init__(self, factory, app):

self.factory = factory

self.app = app

def connectionMade(self):

self.factory.clients.append(self)

def dataReceived(self, data):

for client in self.factory.clients:

addtolog = self.factory.app.handle_message(data)

if addtolog:

client.transport.write(data)

def connectionLost(self,reason):

self.factory.clients.remove(self)

class MultiClientEchoFactory(Factory):

protocol = MultiClientEcho

def __init__(self):

self.clients = []

def buildProtocol(self, addr):

return MultiClientEcho(self)

class ServerApp(App):

def build(self):

self.label = Label(text="server started

")

reactor.listenTCP(8000, MultiClientEchoFactory())

return self.label

def handle_message(self, msg):

self.label.text = "received: %s

" % msg

return msg

if __name__ == '__main__':

ServerApp().run()

有趣的是,我只是改编自该站点的源代码:http://kivy.org/docs/guide/other-frameworks.html,它也可以很好地运行,但是一旦将协议更改为MultiClientEcho,它立即会导致此类类型错误.我怎样才能解决这个问题?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值