Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带RPC的python流式TCP服务器_Python_Sockets_Xml Rpc - Fatal编程技术网

带RPC的python流式TCP服务器

带RPC的python流式TCP服务器,python,sockets,xml-rpc,Python,Sockets,Xml Rpc,我已经用python编写了一个小型流媒体mp3服务器。到目前为止,它所做的只是接受ServerSocket连接,并开始使用socket.send()将其队列中的所有mp3数据流式传输到请求。我已经实现了这一点来在流中分块icy元数据,因此播放歌曲的名称将显示在客户端中 我想将播放列表管理添加到服务器,以便我可以操作正在运行的服务器的播放列表。我模糊地认为xmlrpclib适合这样做,但我对两件事感到困惑: 是否可能/建议在单个服务器和单个端口上集成ICY和XMLRPC 如何在流线程和播放列表之间

我已经用python编写了一个小型流媒体mp3服务器。到目前为止,它所做的只是接受ServerSocket连接,并开始使用socket.send()将其队列中的所有mp3数据流式传输到请求。我已经实现了这一点来在流中分块icy元数据,因此播放歌曲的名称将显示在客户端中

我想将播放列表管理添加到服务器,以便我可以操作正在运行的服务器的播放列表。我模糊地认为xmlrpclib适合这样做,但我对两件事感到困惑:

  • 是否可能/建议在单个服务器和单个端口上集成ICY和XMLRPC

  • 如何在流线程和播放列表之间共享状态,以及如何通过xmlrpc对其进行操作


  • 如果您使用两个单独的端口,每个端口都有自己的服务器在单独的线程中运行,那么初始尝试可能会更容易。但是,从长远来看,管理线程之间的同步可能是一项烦人的任务

    ICY和HTTP非常相似,如果您已经在SocketServer上实现了ICY,那么您可能可以扩展到在同一端口上响应ICY和HTTP请求。请看一看该方法的标准库代码,并考虑如何在一个子类中为分离的个性重写它


    另外,当您希望使用这些类处理多个并发请求时,请查看。

    BaseHTTPRequestHandler是否会接收xmlrpc?我知道HTTP可以用于所有这些,但我的问题是在同一台服务器上使用两种不同的协议。是的,我需要同步。是的,我正在使用线程混合是的,我理解您在同一台服务器上实现两个协议的目标。正如我所说,这需要一些工作。请注意,SimpleXMLRPCServer与BaseHTTPServer基于相同的类层次结构。我的建议是阅读这两个方面的代码,理解共享部分和差异,并提出将所需功能绑定在一起的自己的子类。我已经实现了一个BaseHTTPServer来处理ICY和XML RPC。谢谢你的指点。关于如何实现这个野兽的共享状态,有什么建议吗?我想如果你把它作为一个新问题来问,你可能会得到更多的回答。祝贺你的进步!