Last active
November 1, 2023 16:47
-
-
Save RochaGabriell/87c5c8c4530fd03f312b649961abd012 to your computer and use it in GitHub Desktop.
Sockets em Python - Sockets permitem a comunicação entre dois processos (programas) diferentes na mesma máquina ou em máquinas diferentes.
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
import socket | |
# Configurações do servidor | |
HOST = '127.0.0.1' | |
PORT = 12345 | |
# Cria um socket do tipo TCP | |
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
# Conecta o socket a um endereço e porta | |
client_socket.connect((HOST, PORT)) | |
while True: | |
# Recebe uma mensagem do usuário | |
message = input("Digite uma mensagem para enviar ao servidor (ou 'exit' para sair): ") | |
if message == 'exit': | |
break | |
# Envia a mensagem para o servidor | |
client_socket.send(message.encode('utf-8')) | |
client_socket.close() |
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
import socket | |
# Configurações do servidor | |
HOST = '10.8.80.99' | |
PORT = 12345 | |
# Cria um socket do tipo UDP | |
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |
while True: | |
# Recebe uma mensagem do usuário | |
message = input("Digite uma mensagem para enviar ao servidor (ou 'exit' para sair): ") | |
if message == 'exit': | |
break | |
# Envia a mensagem para o servidor | |
client_socket.sendto(message.encode('utf-8'), (HOST, PORT)) | |
client_socket.close() |
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
import socket | |
import threading | |
# Configurações do servidor | |
SERVER_HOST = '127.0.0.1' | |
SERVER_PORT = 12345 | |
# Configurações do cliente | |
CLIENT_HOST = '127.0.0.1' | |
CLIENT_PORT = 12345 | |
# Cria um socket do tipo UDP pra receber mensagens | |
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |
# Cria um socket do tipo UDP pra enviar mensagens | |
client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |
# Associa o socket a um endereço e porta | |
server_socket.bind((SERVER_HOST, SERVER_PORT)) | |
print(f"Servidor UDP escutando na porta {SERVER_PORT}...") | |
def receive_message(): | |
while True: | |
message = input(f"Digite uma mensagem para enviar ao servidor {SERVER_HOST} (ou 'exit' para sair): ") | |
if message == 'exit': | |
server_socket.close() | |
client_socket.close() | |
threading._shutdown() | |
break | |
client_socket.sendto(message.encode('utf-8'), | |
(CLIENT_HOST, CLIENT_PORT)) | |
def send_message(): | |
while True: | |
message, client_address = server_socket.recvfrom(1024) | |
print(f"\n\nRecebida mensagem de {client_address}: {message.decode('utf-8')}\n") | |
if message: | |
print(f"Digite uma mensagem para enviar ao servidor {SERVER_HOST} (ou 'exit' para sair): ") | |
threading.Thread(target=send_message).start() | |
threading.Thread(target=receive_message).start() |
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
import socket | |
# Configurações do servidor | |
HOST = '127.0.0.1' | |
PORT = 12345 | |
# Cria um socket do tipo TCP | |
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
# Associa o socket a um endereço e porta | |
server_socket.bind((HOST, PORT)) | |
# Define o limite máximo de conexões pendentes e coloca o servidor em modo de escuta | |
server_socket.listen(1) | |
print(f'Esperando conexão na porta {PORT}...') | |
# Aceita uma conexão quando solicitado | |
client_socket, client_address = server_socket.accept() | |
print(f'Conexão estabelecida com {client_address}') | |
while True: | |
data = client_socket.recv(1024) | |
if not data: | |
break | |
print(f'Mensagem recebida: {data.decode()}') | |
client_socket.close() | |
server_socket.close() |
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
import socket | |
# Configurações do servidor | |
SERVER_HOST = '10.8.80.164' | |
SERVER_PORT = 12345 | |
# Cria um socket do tipo UDP pra receber mensagens | |
server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |
# Associa o socket a um endereço e porta | |
server_socket.bind((SERVER_HOST, SERVER_PORT)) | |
print(f"Servidor UDP escutando na porta {SERVER_PORT}...") | |
while True: | |
# Recebe uma mensagem do cliente | |
message, client_address = server_socket.recvfrom(1024) | |
print(f"Recebida mensagem de {client_address}: {message.decode('utf-8')}") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment