2010-04-22 9 views
8

Je voudrais envoyer un paquet de diffusion UDP spécifique .. malheureusement, j'ai besoin d'envoyer le paquet udp de un port très spécifique pour tous les paquets que j'envoie. Supposons que je diffuse via UDP "BLABLAH", le serveur ne répondra que si mon port de source de paquets entrant est 1444, sinon le paquet est rejeté.Socket set numéro de port source

Mon apparence configuration de prise de diffusion comme ceci:

s = socket(AF_INET,SOCK_DGRAM) 

s.setsockopt(SOL_SOCKET, SO_BROADCAST, 1) 

Comment puis-je faire (définir le port source) en python?

Merci!

Répondre

14

Vous devez indiquer bind sur le port du port spécifique à partir duquel vous voulez envoyer. La méthode bind prend un tuple d'adresse, un peu comme connect, mais vous pouvez utiliser l'adresse générique. Par exemple:

s.bind(('0.0.0.0', 1444)) 
Questions connexes