UDP Socket - Absender Port

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
ax
User
Beiträge: 3
Registriert: Montag 5. Mai 2008, 12:28

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
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Kannst du uns etwas genauer sagen was du machen willst?

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

Gruss,
Jonas
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
ax
User
Beiträge: 3
Registriert: Montag 5. Mai 2008, 12:28

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?
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

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.
ax
User
Beiträge: 3
Registriert: Montag 5. Mai 2008, 12:28

Ok danke Leute, das war ja doch viel einfacher als gedacht. :)
Antworten