Привет, Я пытаюсь реализовать базовый серверный клиент с использованием скрученного. Мой сервер - это ПК, а клиенты - это небольшие встроенные устройства, которые будут общаться через UDP через Wi-Fi. Вот очень маленькая реализация я с использованием примеровМножество клиентов Twisted UDP Server
from twisted.internet.protocol import DatagramProtocol
from twisted.internet import protocol, reactor
import time
from socket import SOL_SOCKET, SO_BROADCAST
class Echo(protocol.DatagramProtocol):
def datagramReceived(self, data, (host, port)):
while(1):
self.transport.write(data, (host, port))
##Recieve Some thing here on the current ip
##Perform some task have to send and recieve couple of
##times
time.sleep(3)
def main():
reactor.listenUDP(8000, Echo())
reactor.run()
print 'Reactor running\n'
#protocol.startProtocol()
while(1):
command_input = input("Enter your Command ")
if command_input == exit:
print 'Exiting'
exit()
if __name__ == '__main__':
main()
я буду получать пакет от клиента, то я должен буду отправить некоторые данные обратно, а затем снова клиент будет отправлять какие-то данные, и это будет продолжать для некоторых в то время как. Есть ли способ сделать это в функции datagramRecieved() и одновременно обслуживать другие клиенты. В этой реализации после вызова функции datagramRecieved() я не могу получить что-либо еще, пока не вернется. Существует концепция фабрик (используется в tcp, я думаю), она может быть реализована здесь.