UDP Socket - Absender Port

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

UDP Socket - Absender Port

Beitragvon ax » Montag 5. Mai 2008, 12:41

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:

Beitragvon veers » Montag 5. Mai 2008, 12:54

Kannst du uns etwas genauer sagen was du machen willst?

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

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

Beitragvon ax » Montag 5. Mai 2008, 15:03

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

Beitragvon Trundle » Montag 5. Mai 2008, 15:12

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

Beitragvon ax » Montag 5. Mai 2008, 15:17

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder