English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Programmazione dei socket in Python

Nella comunicazione bidirezionale, i socket sono due estremi. I socket possono comunicare tra processi sulla stessa macchina o in diverse continenti.

I socket sono implementati da diversi tipi di canali TCP, UDP.

Per creare un Socket, abbiamo bisogno del modulo socket e della funzione socket.socket().

Sintassi

my_socket = socket.socket(socket_family, socket_type, protocol=0)

Diversi metodi del socket server

my_socket.bind()

Questo metodo viene utilizzato per associare l'indirizzo (paia di nome host, porta) al socket.

my_socket.listen()

Questo metodo viene utilizzato per impostare e avviare il listener TCP.

my_socket.accept()

Questo metodo viene utilizzato per accettare la connessione del client TCP, aspettando che la connessione arrivi (bloccante).

Diversi metodi del socket client

my_socket.connect()

Questo metodo avvia attivamente la connessione del server TCP.

Metodi di socket generici

my_socket.recv()

Questo metodo riceve messaggi TCP

my_socket.send()

Questo metodo trasmette messaggi TCP

my_socket.recvfrom()

Questo metodo riceve messaggi UDP

my_socket.sendto()

Questo metodo trasmette messaggi UDP

my_socket.close()

Questo metodo chiude il socket

my_socket.gethostname()

Questo metodo restituisce il nome dell'host.

Punta server

Esempio

import socket
my_socket = socket.socket() # Crea un oggetto socket
my_host = socket.gethostname()
my_port = 00000# Memorizza un numero di porta per il tuo servizio.
my_socket.bind((my_host, my_port))
my_socket.listen(5) # Ora aspetta la connessione del client.
while True:
   cl, myaddr = my_socket.accept() # Estabilisci la connessione con il client.
   print('ottenuta connessione da', myaddr)
   cl.send('Grazie per la connessione')
   cl.close() # Chiudi la connessione

Punta client

Esempio

import socket # Importa il modulo socket
my_socket = socket.socket() # Crea un oggetto socket
my_host = socket.gethostname() # Ottieni il nome del computer locale
my_port = 00000# Memorizza un numero di porta per il tuo servizio.
my_socket.connect((my_host, my_port))
print(my_socket.recv(1024))
my_socket.close