Last active
September 10, 2021 18:46
-
-
Save barraponto/ed34296ffb03bf694b07f19ae907dada to your computer and use it in GitHub Desktop.
Exemplos de servidores eco em TCP e UDP usando Python
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from socketserver import TCPServer, StreamRequestHandler | |
ADDRESS = "", 3000 | |
class EchoHandler(StreamRequestHandler): | |
"""Responde requisições repetindo o que foi recebido.""" | |
def handle(self): | |
# Usar b'' cria strings binárias, já codificadas como ASCII | |
self.wfile.write(b"Hello, World!\n") | |
# self.wfile e self.rfile são canais de entrada e saída | |
# programados para ter a mesma interface de arquivos! | |
for line in self.rfile: | |
self.wfile.write(b"Received: " + line) | |
print(line.decode('ascii').strip()) | |
if __name__ == "__main__": | |
with TCPServer(ADDRESS, EchoHandler) as server: | |
server.serve_forever() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from socketserver import UDPServer, DatagramRequestHandler | |
ADDRESS = "", 5000 | |
class EchoHandler(DatagramRequestHandler): | |
"""Responde requisições repetindo o que foi recebido.""" | |
def handle(self): | |
for line in self.rfile: | |
self.wfile.write(b"Received: " + line) | |
print(line.decode("utf-8").strip()) | |
if __name__ == "__main__": | |
with UDPServer(ADDRESS, EchoHandler) as server: | |
server.serve_forever() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Escrito e testado com Python 3.8