Autor Beitrag
JnZn558
Hält's aus hier
Beiträge: 12



BeitragVerfasst: So 01.02.09 15:13 
Ich beschäftige mich gerade mit Socket, nun sehe ich wenn ich ein Socket erzeugen will, sieht die Socketfunktion folgendermaßen aus:

ausblenden Delphi-Quelltext
1:
so := socket(AF_INET, SOCK_STREAM, IPProto_TCP);					


Soweit ich weiss, wenn "SOCK_STREAM" ausgewählt wurde, kommt bei Protokoll "IPProto_TCP" hin, und bei "SOCK_DGRAM" den IPProto_UDP. Nun frage ich mich wozu noch Protokollangabe? Mehr Tipparbeit? oder kann SOCK_STREAM noch andere Protokoll verwendet werden?
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 01.02.09 15:21 
Die Socket-Funktion gehört zum POSIX-Standard und ist typischerweise in der Form unter *nixen anzutreffen.

AF_INET gibt die Adressfamilie an, die für OSI-Layer 3 genutzt wird, wärend SOCK_STREAM und SOCK_DGRAM das Layer-4-Protokoll angeben. Du kannst z.B. auch IPv6 nutzen (Konstnte dazu müsst ich nachgucken), bzw. sagen, dass Du in Layer 3 bzw. 4 RAW sprechen willst, d.h. dich selber um die Paketerstellung kümmern willst.

Edit: IPv6 ist z.B. ganz simpel: AF_INET6 ... Hätt man auch gleich drauf kommen können ^^

Edit 2: Hier mal einen kurzen Link, der das Prinzip darstellt: publib.boulder.ibm.c...b6/rzab6uafinet6.htm Ist zwar speziell für IPv6, ist mit den anderen Adressfamilien nicht anders.

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.