Ein Socket ist quasi das Objekt auf Betriebssystemebene, welche die Kommunikation organisiert. Dem Socket kann man bestimmte Eigenschaften zuweisen (welcher Typ, welches Protokoll, etc.), man kann dem Socket sagen, dass es etwas absenden soll und wohin und man kann schauen, ob der Socket etwas in seinem Empfangspuffer liegen hat. usw usf.
Unter Windows sieht das folgendermaßen aus:
Delphi-Quellcode:
//stark gekürzt
uses WinSock;
var s:TSocket; // =Integer
begin
s:=socket(Af_Inet,Sock_DGRAM,IPProto_UDP); //Socket initialisieren/einrichten
sendto(s,buf,buflen,addr,addrsize); //Inhalt von Buf an Addr über socket s senden.
Neben sendto gibt es natürlich noch andere Befehle, wie recvfrom oder select. Bei allen musst du am Anfang ein Sockethandle (hier: s) übergeben. Wenn du das nicht machst, bekommst du eben deinen oben genannten Fehler.
Was bedeutet dies für dein Problem.
1. Du musst für die Nutzung von
Indy nicht die
WinAPI Befehle lernen, die ich u.a in dem Code oben gepostet habe,
2. du musst auch
nicht die ScktComp dir ansehen, wenn du mit
Indy arbeitest
3.
Indy arbeitet intern mit genau dem, was ich dir oben angegeben habe (und natürlich auch die SocktComp). Du hast also bei der Bedienung von
Indy etwas falsch gemacht. Deswegen sollst du mal zeigen, was du gemacht hast.
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.