Skip to content

Instantly share code, notes, and snippets.

@RochaGabriell
Last active November 1, 2023 16:47
Show Gist options
  • Save RochaGabriell/87c5c8c4530fd03f312b649961abd012 to your computer and use it in GitHub Desktop.
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.
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()
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()
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()
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()
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