Lt. Internet ist die letzte Synapse - Version die 40
Genau diese Version verwende ich. Es gibt hier ein Beispiel im Forum.
Aus diesem Beispiel habe ich eine Klasse erstellt. Damit ich leichter drauf zugreifen kann.
Funktioniert eigentlich recht gut.
Ein kleines Demo habe ich jedoch dazu nicht geschrieben. Aber vielleicht hilft es.
Ganz wichtig, es werden Threads genutzt, also musst du die Unit cthreads einbinden in der LPR Dateien. die muss als ERSTES eingebunden werden.
Für einen Server:
Code: Alles auswählen
Server:=TPLTCP_Server.Create(true);
Server.OnAddClient:=@OnAddClient;
Server.OnReseived:=@OnReseived;
Server.ClientList.OnReceived:=@OnReseived;
....
if Paramcount >=2 then
Server.StartServer(ParamStr(2),StrToInt(ParamStr(3)));
Wie du sehen kannst, ist der erste Parameter was anders.... Der Code stammt aus meinem Pluto Arduino Projekt. Der erste Parameter ist ein USB Device, kannst du hier einfach angeben oder anpassen.
Für einen Client:
Code: Alles auswählen
ClientList:=TPLTCP_ClientList.Create;
ClientList.OnReceived:=@OnReseived;
// P1 = IP
// P2 = Port1
// P3 = Client Name
NewClient:=ClientList.AddClient('','');
NewClient.StartSocket(ParamStr(1),StrToInt(ParamStr(2)));
NewClient.Send('NewClient:'+ParamStr(3));
In beiden Projekten werden die IP und Port per Parameter übergeben. Ist der Port belegt, wird der nächste genommen.