Seite 1 von 1

UDP Socket - Absender Port

Verfasst: Montag 5. Mai 2008, 12:41
von ax
Hallo,

ist es irgendwie möglich bei einem UDP-Socket den Absender Port zu setzen? Ich wüsste jetzt nur den Weg über einen Raw-Socket. Aber mich interessiert ob es halt auch speziell über einen UDP-Socket irgendwie geht? Der Gedanke dahinter ist, ganz speziell definierte Pakete senden zu können

Danke schonmal.
Ax

Verfasst: Montag 5. Mai 2008, 12:54
von veers
Kannst du uns etwas genauer sagen was du machen willst?

Die Antwort auf deine Frage wird vermutlich socket.bind sein ;)

Gruss,
Jonas

Verfasst: Montag 5. Mai 2008, 15:03
von ax
Ok ich versuch mich mal klarer auszudrücken.
Im UDP-Header gibt es Source und Destination Ports. Wenn ich einen Socket erstelle, kann ich normalerweise nur den Destination-Port setzen. Der Source-Port wird vom Kernel automatisch gewählt. Ich will/muss jetzt für ein Projekt UDP-Pakete erzeugen, bei denen ich explizit den Source-Port setzen möchte. Socket.bind scheint da in die richtige Richtung zu gehen.
Hat jemand da vielleicht ein kurzes Beispiel parat?

Verfasst: Montag 5. Mai 2008, 15:12
von Trundle

Code: Alles auswählen

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind(('', 1234))
s.sendto('Spam', ('localhost', 2323))
Wobei ``1234`` hier eben der Port deiner Wahl wäre. Aber spätestens, wenn das Paket durch eine NAT läuft, dürfte der Port nicht mehr stimmen.

Verfasst: Montag 5. Mai 2008, 15:17
von ax
Ok danke Leute, das war ja doch viel einfacher als gedacht. :)