Skip to content

Instantly share code, notes, and snippets.

@barraponto
Last active September 10, 2021 18:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save barraponto/ed34296ffb03bf694b07f19ae907dada to your computer and use it in GitHub Desktop.
Save barraponto/ed34296ffb03bf694b07f19ae907dada to your computer and use it in GitHub Desktop.
Exemplos de servidores eco em TCP e UDP usando Python
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()
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()
@barraponto
Copy link
Author

Escrito e testado com Python 3.8

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment