- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想将我的数据库连接传递给 EchoHandler 类,但是我完全不知道该怎么做或访问 EchoHandler 类。
class EchoHandler(SocketServer.StreamRequestHandler): def handle(self): print self.client_address, 'connected'if __name__ == '__main__': conn = MySQLdb.connect (host = "10.0.0.5", user = "user", passwd = "pass", db = "database") SocketServer.ForkingTCPServer.allow_reuse_address = 1 server = SocketServer.ForkingTCPServer(('10.0.0.6', 4242), EchoHandler) print "Server listening on localhost:4242..." try: server.allow_reuse_address server.serve_forever() except KeyboardInterrupt: print "\nbailing..."
最佳答案
不幸的是,没有一种简单的方法可以直接从服务器外部访问处理程序。
您有两个选项可以将信息传递给 EchoHandler 实例:
server_forever()
之前添加 server.conn = conn
),然后通过 self.server.conn
.finish_request
并在那里分配值(您必须将其传递给 EchoHandler 的构造函数并覆盖 EchoHandler.__init__)。这是一个更加困惑的解决方案,它几乎需要您将连接存储在服务器上。我的最佳选择:
class EchoHandler(SocketServer.StreamRequestHandler):
def handle(self):
# I have no idea why you would print this but this is an example
print( self.server.conn );
print self.client_address, 'connected'
if __name__ == '__main__':
SocketServer.ForkingTCPServer.allow_reuse_address = 1
server = SocketServer.ForkingTCPServer(('10.0.0.6', 4242), EchoHandler)
server.conn = MySQLdb.connect (host = "10.0.0.5",
user = "user", passwd = "pass", db = "database")
# continue as normal
关于python - 使用 python socketserver 如何将变量传递给处理程序类的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6875599/
我正在尝试学习 Java 网络编程,但遇到了一些障碍。我已经编写了服务器和客户端,但每次尝试连接它们时,我都会立即收到连接关闭错误。然后,我尝试编辑它,但现在出现连接拒绝错误。放弃了这一点,我决定在一
scala.tools.util.SocketServer 的用途是什么? 最佳答案 它是编译器的一部分,而不是标准 scala 库的一部分。其目的是实现fsc 的服务器通信。 (快速 Scala 编
我正在使用 SocketServer 启动一个简单的 TCP 服务器: class ThreadedTCPServer(SocketServer.ThreadingMixIn, SocketServe
因此,我找到了以下示例代码,该示例代码允许在给定的URL和端口处建立基本的python HTTP服务器。我对Web服务器缺乏经验,并且正在尝试为此服务器的某些GET请求创建处理程序。但是,当远程访问此
我正在尝试制作Java套接字服务器,它有框架,可以在其中显示消息。 但是当我从框架构造函数运行服务器时,框架不可见。 我的代码的一部分: 调用框架: public static void ma
我在Python中使用TCP服务器,它实现了这个类: class ThreadedTCPServer(SocketServer.ThreadingTCPServer): pass 它的正常使用
抱歉,如果这个问题太基础了 - 这是我第一次尝试在 Python 中使用多线程套接字。 基本上,我正在尝试编写代码来获取 UDPServer 套接字接收的数据;套接字本身在线程内运行。 为了使主线程可
我在应用程序中使用客户端-服务器机制来传输内部数据。服务器部件之一应设计为一次服务一个请求,没有线程,没有积压。我发现奇怪的功能然后使用: serverport = new ServerSocket(
我想在我的 mac 上创建一个 SocketServer。 然而,这似乎是软件包的一些问题。当我尝试这个采样代码时发现 here它引发了属性错误。 import SocketServer class
我一直在四处寻找一种方法来让 SocketServer python 模块在没有成功的情况下监听多播。 有人成功做到了吗? 任何见解将不胜感激! 谢谢 最佳答案 文档 (http://docs.pyt
我正在使用 Python3 的 socketserver 模块创建一个简单的 TCP 服务器。我想获取服务器所服务的服务器的 IP。 我注意到 socketserver(而不是 BaseServer)
我正在尝试实现 SocketServer 以从移动应用程序接收文件: 移动应用程序发送文件大小。 移动应用程序发送文件。 正确接收文件大小。在应用程序中发送所有数据。但是,SocketServer无法
我需要用socketserver搭建一个tcp server。根据他们的文档,我需要继承类 TCPServer,并将它传递给类 BaseRequestHandler 的子类,我重写了方法 handle
下面是我目前使用的代码: #! /usr/bin/python print 'Content-type: application' print '\n\n' import SocketServer i
我是java新手,我无法理解void go()方法的while循环部分。accept()方法等待客户端请求连接到服务器,那么为什么像Print writer等其他语句,没有被执行? 其他语句是否在 w
我只是用 Sockets 和 ServerSockets 进行了一些测试。所以我做了一个小测试程序,但它不起作用。看起来它停在“.accept()”方法的某个地方,但我不知道为什么。有人可以帮忙吗?
我有一个 Android 服务在后台运行,它将使用以下代码: while(true) { ServerSocket server = new ServerSocket(1234); Socke
这是我玩过的代码,但每次我犯错我都无法重新启动它。它对我说端口/套接字已被使用这是第一个问题第二个在我的 MyTCPHandler 中,我怎么知道使用的端口?这是我的代码: # MetaProject
我正在创建一个 UDP SocketServer,如果我收到来自客户端的关闭消息,我想关闭而不是关闭 UDP 连接。 当我收到消息时,将显示 Begin,但不会显示 Finished。我怎样才能退出这
我正在使用 Python 3.1 中的 socketserver 模块运行 Python 服务器。每次我从客户端(客户端成功)获得连接时,我的服务器都会收到一个错误。这是我的代码: import so
我是一名优秀的程序员,十分优秀!