如何解决python中使用twisted,如何使用多客户端UDP服务器进行语音聊天
当我启动脚本时,服务器只发回一次数据。有人可以帮助我,或者只是为简单的多客户端 UDP 服务器提供替代方案(也许自己构建一个更好),我需要在另一个大项目中实现它。
提前致谢!
服务器:
from twisted.internet.protocol import DatagramProtocol
from twisted.internet import reactor
class Multicast(DatagramProtocol):
def startProtocol(self):
self.transport.setTTL(5)
self.transport.joinGroup("228.0.0.5")
def datagramReceived(self,datagram,address):
self.transport.write(datagram,address)
reactor.listenMulticast(8005,Multicast(),listenMultiple=True)
reactor.run()
客户:
from twisted.internet.protocol import DatagramProtocol
from twisted.internet import reactor
import pyaudio
p = pyaudio.PyAudio()
input_stream = p.open(format=pyaudio.paInt16,channels=1,rate=44100,frames_per_buffer=512,input=True)
stream = p.open(format = pyaudio.paInt16,channels = 1,rate = 44100,output = True)
class MulticastPingClient(DatagramProtocol):
def startProtocol(self):
# Join the multicast address,so we can receive replies:
self.transport.joinGroup("228.0.0.5")
# Send to 228.0.0.5:8005 - all listeners on the multicast address
# (including us) will receive this message.
self.transport.write(input_stream.read(1024),("228.0.0.5",8005))
def datagramReceived(self,address):
stream.write(datagram)
reactor.listenMulticast(8005,MulticastPingClient(),listenMultiple=True)
reactor.run()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。