python - 如何给twisted服务器一个IP地址?
问题描述
我正在尝试编写一个简单的客户端/服务器(其中客户端和服务器不是同一台机器)并且无法弄清楚如何给扭曲的 IP 地址。
from twisted.internet import protocol, reactor, endpoints
from twisted.protocols import basic
class FingerProtocol(basic.LineReceiver):
def lineReceived(self, user):
self.transport.write(self.factory.getUser(user) + b"\r\n")
self.transport.loseConnection()
class FingerFactory(protocol.ServerFactory):
protocol = FingerProtocol
def __init__(self, users):
self.users = users
def getUser(self, user):
return self.users.get(user, b"No such user")
fingerEndpoint = endpoints.serverFromString(reactor, ("192.168.1.7", "tcp:1079"))
fingerEndpoint.listen((FingerFactory({ b'moshez' : b'Happy and well'})))
reactor.run()
错误:
Traceback (most recent call last):
File "sensors/twistedTest.003.py", line 20, in <module>
fingerEndpoint = endpoints.serverFromString(reactor, ("192.168.1.7", "tcp:1079"))
File "/usr/local/lib/python3.5/dist-packages/twisted/internet/endpoints.py", line 1724, in serverFromString
nameOrPlugin, args, kw = _parseServer(description, None)
File "/usr/local/lib/python3.5/dist-packages/twisted/internet/endpoints.py", line 1635, in _parseServer
args, kw = _parse(description)
File "/usr/local/lib/python3.5/dist-packages/twisted/internet/endpoints.py", line 1596, in _parse
for (type, value) in _tokenize(description):
File "/usr/local/lib/python3.5/dist-packages/twisted/internet/endpoints.py", line 1570, in _tokenize
current += n
TypeError: can't concat bytes to tuple
如何给twisted/reactor 一个IP 地址?
解决方案
而不是使用 ("192.168.1.7", "tcp:1079") 尝试 b"tcp:1079:interface=192.168.1.7"。
像这样:
fingerEndpoint = endpoints.serverFromString(reactor, b"tcp:1079:interface=192.168.1.7")
此外,地址“192.168.1.7”应该是服务器机器上某些网络接口的地址。
推荐阅读
- python - 我们如何生成 CNN 模型?
- java - 在浏览器中打开 HTML 文档,只知道它的相对路径,从 Java 函数
- excel - 用于自动生成表格条目的按钮
- angular - Angular Material Datepicker:触摸ui模式下的较大字体
- django - 如何在 Django 的自定义身份验证用户模型中添加 app_label?
- javascript - Nodejs mysql rest api查询未执行
- c# - c#关闭我的应用程序后执行批处理文件仍在运行?
- python - f 字符串未在列表内更新
- etl - Handling bad records in airflow dag
- javascript - Set CSS cursor while dragging