2010-04-22 14 views
8

Vorrei inviare un pacchetto specifico di trasmissione UDP .. sfortunatamente ho bisogno di inviare il pacchetto udp da una porta molto specifica per tutto il pacchetto che invio.Numero di porta di origine socket impostato

Diciamo che trasmetto via UDP "BLABLAH", il server risponderà solo se la mia porta sorgente di pacchetto in entrata era 1444, se non il pacchetto è scartato.

La mia trasmissione di impostazione presa di simile a questa:

s = socket(AF_INET,SOCK_DGRAM) 

s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) 

Come posso fare che (impostare la porta di origine) in Python?

Grazie!

risposta

14

È necessario bind il socket per la porta specifica da cui si desidera inviare. Il metodo bind accetta una tupla di indirizzo, molto simile a connect, sebbene sia possibile utilizzare l'indirizzo jolly. Ad esempio:

s.bind(('0.0.0.0', 1444)) 
8

Utilizzare s.bind(('', port)).

Problemi correlati