Hi!
Und wie greifst du die Antwort dort ab? Doch sicher mit einem Binding auf diesen Port. Wenn das nicht klappt, ist er belegt.
Wie schon gesagt, gehe ich schon in Layer3 auf IP ran.Machst du TCP oder UDP? Bei TCP gibst du eigentlich gar keinen Quellport an, einen freien sucht sich dann der TCP/IP-Stack von selbst. UDP ist ja eine Einbahnstraße, da musst du für die zurückkommenden Pakete einen Listener aufsetzen, der bindet sich an einen Port - aber nur, wenn er frei ist.
ich nutze, wie es üblich ist UDP für's DNS.
Da ich ja, wie gesagt das IP abhöre gibt's da nichts mit Ports. Ich gucke mir das UDP Paket welches in meinem IP-Paket gekapselt ist an und schaue mir die Portnummern (Source & Dest) an. IP's entnehme ich dem IP Header. So kann ich eine Zuordnung machen.
Dann manipuliere ich die Pakete entsprechend und setze sie wiederum auf IP ab.
Dass UPD ein Verbindungsloses Protokoll ist, ist mir bewusst. Allerdings ist mir im Laufe der Diskussion hier auch bewußt geworden, dass ich im Grunde alle Anfragen cachen muß um feststellen zu können an welche Adresse:Port kombination ich die Antwort weitergeben muß.
Lokal ist das ja "wumpe" da die Ziel IP für die Antwort immer die lokale IP ist, kämen aber Anfragen von anderen Rechnern aus dem Netz, habe ich hier keine Möglichkeit die Antworten zuzuordnen.
Lo!
Vielen Dank für das Gespräch, es hat mir weitergeholfen! ;)
Gruß, Markus**