- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
抱歉,如果这个问题太基础了 - 这是我第一次尝试在 Python 中使用多线程套接字。
基本上,我正在尝试编写代码来获取 UDPServer 套接字接收的数据;套接字本身在线程内运行。 为了使主线程可以访问数据,我使用了线程本地存储(根据我读到的所有内容,这似乎是正确的方法)。下面的代码是我第一次尝试使其工作,但变量似乎没有正确更新。知道会发生什么吗?
编辑:请参阅下面的工作示例
服务器:
import socket
import threading
import SocketServer
data = threading.local()
class UDPHandler(SocketServer.BaseRequestHandler):
def handle(self):
data.outputString = self.request[0].strip()
class ThreadedUDPServer(SocketServer.ThreadingMixIn, SocketServer.UDPServer):
def __init__(self, serverAddress, handlerClass):
SocketServer.UDPServer.__init__(self, serverAddress, handlerClass)
data.outputString = ""
if __name__ == "__main__":
ReceiverSocket = ThreadedUDPServer(("localhost",11111), UDPHandler)
ServerThread = threading.Thread(target=ReceiverSocket.serve_forever)
ServerThread.daemon = True
ServerThread.start()
while 1:
if data.outputString:
print data.outputString
data.outputString = ""
客户:
import socket
import sys
HOST, PORT = "localhost", 11111
data = " ".join(sys.argv[1:])
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(data + "\n", (HOST, PORT))
谢谢!!
最佳答案
成功了。是的 - 线程本地与此无关...:)
我设置了一个全局变量,并在每个修改它的函数中将其定义为全局变量(按照 this very helpful answer )
import socket
import threading
import SocketServer
data = ""
class UDPHandler(SocketServer.BaseRequestHandler):
def handle(self):
global data
data = self.request[0].strip()
class ThreadedUDPServer(SocketServer.ThreadingMixIn, SocketServer.UDPServer):
pass
if __name__ == "__main__":
ReceiverSocket = ThreadedUDPServer(("localhost",11111), UDPHandler)
ServerThread = threading.Thread(target=ReceiverSocket.serve_forever)
ServerThread.start()
while 1:
if data:
print data
data = ""
关于Python SocketServer 通过线程本地存储将数据传递到主线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14843974/
我正在尝试学习 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
我是一名优秀的程序员,十分优秀!