我有这个程序客户端和服务器在udp,单线程。任何人都可以帮助我在多线程中进行转换吗? (有葡萄牙在这个代码,因为我是巴西人笑) (客户端和服务器都在答案)Python:多线程程序udp
-2
A
回答
1
服务器:
def server():
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('127.0.0.1', 9999))
print('Escutando em {}'.format(sock.getsockname()))
while True:
rec, address = sock.recvfrom(MAX_BYTES)
text = rec.decode('utf-8')
if text == "Inserir":
# recebe uma palavra e um signficado
termo_inserir, end = sock.recvfrom(1024)
significado, end = sock.recvfrom(1024)
termo_inserir = termo_inserir.decode('utf-8')
significado = significado.decode('utf-8')
# insere a palvra e sig no dicionário
Mat[termo_inserir] = significado
if text == 'Excluir':
termo_excluir, end = sock.recvfrom(1024)
termo_excluir = termo_excluir.decode('utf-8')
del Mat[termo_excluir]
if text == "Consultar":
men_cons, end = sock.recvfrom(1024)
men_cons = men_cons.decode('utf-8')
# consulta no dic
if men_cons in Mat:
resposta = Mat[men_cons]
sock.sendto(resposta.encode('utf-8'), end)
else:
sock.sendto("Termo não encontrado. Tente inserir.".encode("utf-8"), end)
if text == 'Editar':
termo_excluir, end = sock.recvfrom(1024)
termo_excluir = termo_excluir.decode('utf-8')
if termo_excluir in Mat:
del Mat[termo_excluir]
significado, end = sock.recvfrom(1024)
significado = significado.decode('utf-8')
Mat[termo_excluir] = significado
sock.sendto(("Significado do termo: " + termo_excluir + " foi alterado para: "+ significado).encode("utf-8"), end)
else:
sock.sendto(("Termo: " + termo_excluir + " não existe no dicionário. Tente inserir.").encode("utf-8"), end)
if __name__ == '__main__':
while True:
listen_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
listen_sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
listen_sock.bind(('127.0.0.1', 9999))
addr = listen_sock.getsockname()
# Thread roda a funcao handle_client() de forma autonoma
# e concorrente dentro do loop
thread = threading.Thread(target=server,
args=[],
daemon=True)
thread.run()
print('Conexão de {}'.format(addr))
+0
这包含一个错误♂️ – jovss25
0
客户:
进口插座 MAX_BYTES = 65535 而True:
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print("*****************************************\n"
"Dicionário Termos Matemáticos \n"
"*****************************************")
text = str(input("---------------------------------\n"
"Para consulta, digite: Consultar\n"
"Para inserir, digite: Inserir\n"
"Para editar, digite: Editar \n"
"Para excluir, digite: Excluir\n"
"Para sair, digite: Sair\n"
"---------------------------------\n"
"O que você deseja fazer?\n"
))
end = ('127.0.0.1', 9999)
sock.sendto(text.encode("utf-8"), end)
if text == 'Inserir':
x = str(input("Digite o termo a ser inserido:\n"))
y = str(input("Digite o significado do termo a ser inserido: \n"))
sock.sendto(x.encode("utf-8"), end)
sock.sendto(y.encode("utf-8"), end)
print("Termo", x, "foi inserido. Seu significado é: ", y)
elif text == 'Excluir':
x = str(input("Digite o termo a ser excluido:\n"))
sock.sendto(x.encode("utf-8"), end)
print("Termo", x, "foi excluído.\n")
elif text == 'Consultar':
text = str(input("Digite o termo a ser procurado: \n"))
i = text.encode('utf-8')
sock.sendto(i, end)
i, address = sock.recvfrom(MAX_BYTES)
text = i.decode('utf-8')
print("Significado: " + text + "\n")
elif text == 'Editar':
x = str(input("Digite o termo a ser editado: \n"))
sock.sendto(x.encode("utf-8"), end)
y = str(input("Digite o significado do termo a ser editado: \n"))
sock.sendto(y.encode('utf-8'), end)
significado, end = sock.recvfrom(1024)
significado = significado.decode('utf-8')
print(significado)
elif text == 'Sair':
print("Você acabou por aqui. Até a próxima.")
break
相关问题
- 1. UDP - 多线程
- 2. 多线程UDP服务器与Python
- 3. JBoss Netty和UDP:多线程?
- 4. 多线程Udp套接字编程
- 5. Python 3 UDP多线程和多重处理
- 6. 在多线程程序中不接收UDP和输出数据
- 7. Python多线程
- 8. 多线程python
- 9. Python多线程
- 10. 多线程PHP与多线程Python
- 11. 多线程程序
- 12. 测试多线程UDP服务器(Java)
- 13. Java UDP多线程的最佳实践
- 14. .Net使用多线程的UDP
- 15. 与Netty的多线程UDP服务器
- 16. Java多线程UDP服务器错误
- 17. 带epoll的多线程UDP服务器?
- 18. Java - UDP多线程服务器
- 19. 多线程udp服务器/客户端
- 20. 问题实现多线程UDP服务器(线程池?)
- 21. python多线程编程
- 22. Python多线程py2exe
- 23. Android Python多线程
- 24. Python多线程“ping”
- 25. 硒python多线程
- 26. 多线程在python
- 27. python线程,多线程与threading.thread
- 28. Python多线程 - 主线程块socket.connect
- 29. 多线程Python:线程通信
- 30. python多线程长线程运行
您不使用类似的答案。 把它放在你的问题。 –