Ich habe mein mailkonzept auch nicht zum übertragen grösserer Datenmengen gedacht, sondern zur Kommunikation.
Du kannst doch dem Client, mit dem du dich mal 'ernsthaft' unterhalten willst, folgende Mail schicken:
Code:
REQUEST CONNECT
Host 192.168.123.001
Port 12345
Daraufhin baut der Empfänger einen Socket auf Port 12345 zur Adresse 192.168.123.001 auf und wartet auf weitere Instruktionen. Über ein geeignetes a) Mail-Format oder b) Übertragungsformat auf
IP-Ebene verschickst du dann einfach Deine Daten. Anschließend wird der Socket wieder entfernt und fettich.
Ich habe das (Mail-)Konzept benutzt, um meinen Clients mitzuteilen, das sich wichtige (Kunden-)Daten auf dem Server verändert haben und sie doch bitteschön mal bei Gelegenheit ein Refresh ausführen sollen.
Wenn Du bidirektionale Kommunikation mit einem SocketServer haben willst, müssen deine Clients Connectionpoints implementieren, oder einfach alle paar Sekunden nachfragen, ob's denn eine Nachricht gibt ...
Du implementierst auf Serverseite zwei kleine Methoden:
Delphi-Quellcode:
Procedure SendMail (Const aSender, aRecipient, aText : String);
Function GetMail (aMyID : String; Var aSender, aText : String) : Boolean;
Mit SendMail schickst Du eine kleine Mail an irgendjemanden. Der Server puffert sie und übergibt sie an den Empfänger. Da kann dann wieder sowas drinstehen, wie:'Ey, mach mal ein Socket auf, ich hab was für Dich' oder so.