Autor Beitrag
Peter18
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: So 22.02.15 19:23 
Ein freundliches Hallo an alle,

ich suche den Einstieg in eine kleine Client / Server Programmierung zum Austausch von Informationen über Netzwerk. Delphi 4 bietet in der Hilfe nicht viel an. Ich hoffe daher jemand hat einen Tipp, wie ich das anfangen kann.

Die Sache soll etwa folgendermaßen aussehen:
  • Ein Server kann nach neuen Nachrichten gefragt werden.
  • Ein Client auf einem anderen Rechner fragt ab und zu an, ob neue Nachrichten vorliegen.
  • Die Nachrichten sind kurze Texte.

Es gibt sicher Systemschnittstellen, über die diese Dinge laufen, die bei Delphi 4 noch nicht dabei sind und die ich mir importieren oder deklarieren kann. Ich hoffe jemand hat einen Tipp wie ich anfangen kann.

Grüße von der Nordsee

Peter
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: So 22.02.15 21:07 
Indy mit TIdTcpServer und TIdTcpClient wären meine erste Wahl, aber ich weiß nicht, ob du noch eine Version von Indy findest, die mit Delphi 4 funktioniert.
Du könntest natürlich auch Embarcadero mal nach einem Key für Turbo Delphi Explorer fragen, da gehen die aktuellen Indyversionen und ich glaube es war auch schon Indy dabei.

Ansonsten müsste auch bei Delphi 4 TClientSocket und TServerSocket dabei sein. Damit geht das auch.
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Mo 23.02.15 12:47 
Hallo jaenicke,

Danke für Deine Antwort! auf Turbo Delphi würde ich nur ungern umsteigen, da ich mich gerade in die Eigenschaften von Delphi 4 eingearbeitet habe. Die Chance, dass bei der Umstellung böse Überraschungen auf mich warten scheint mir zu groß, weil ich mit Delphi 4 schon ziemlich getrixt habe und das, was ich machen will vielleicht mit einigen wenigen Deklarationen oder dem Import der richtigen DLL schon erledigt ist.

TClientSocket und TServerSocket sind bei meiner Version nicht dabei.

Grüße von der Nordsee

Peter
Delphi-Laie
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Mo 23.02.15 18:50 
Angehängtes archiviertes Delphi-Projekt - das nicht ich programmierte - stellt TCP-Funktionen für Delphi 4 zur Verfügung. M.E. ist es ein wenig schlampig programmiert, denn die Warnungen beim Compilieren sind doch ziemlich zahlreich, aber mit meinen Änderungen und Korrekturen halte ich mich lieber zurück. Funktionieren tut es ja auch in dieser hier vorliegenden Version.

Mit ein wenig "Abspecken" ist dieses Projekt auch mit Delphi 3 und sogar Delphi 2 compilierbar.
Einloggen, um Attachments anzusehen!
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 23.02.15 21:33 
Die Warnungen bezüglich nicht initialisierter Variablen sind teilweise nicht weiter schlimm (pBuf, denn bei Übergabe von 0 als zweitem Parameter sollte der Wert nicht verwendet werden), aber manche können böse enden (NumEntries, ...)...
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Di 24.02.15 12:09 
Hallo Delphi-Laie, hallo jaenicke,

Dank Euch für Eure Antworten! Ich werde mir wahrscheinlich die Dinge heraussuchen, die ich für mein Vorhaben brauche, also die Verbindung zum Netzwerk. Die Protokollierung funktioniert anscheinend ganz gut. Ich werde es genauer prüfen und dann Berichten.

Weitere Infos zu dem Thema sind auf jeden Fall willkommen!

Grüße von der Nordsee

Peter
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Di 24.02.15 13:42 
Ein freundliches Hallo an allle,

eine erste grobe Sichtung hat ergeben, dass in meinem Delphi 4 mehr Schnittstellen stecken, als in der Hilfe dokumentiert sind. Die "IpHlpApi" ist zwar da, aber nicht in der Hilfe beschrieben.

Das Beispiel von Delphi-Laie enthält Funktionen, für grundlegende Netzwerk-Daten. Unter msdn.microsoft.com/e...51%28v=vs.85%29.aspx Sind eine unmenge Funktionen dazu aufgeführt. Eine grobe Sichtung hat noch keinen Plan ergeben, ob Funktionen für Client- - Server-Verbindungen dabei sind. (Listener einrichten, Abfragen senden) Werde mich da durch wühlen.

Falls jemand einen Tipp oder ein Beispiel hat, wäre ich sehr dankbar. Das erleichtert den Einstieg ungemein!

Grüße von der Nordsee

Peter
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Di 24.02.15 19:22 
Ein freundliches Hallo an allle,

so, wie es bisher aussieht, sind in der Unit "IpHlpApi" nur tcp/ip Funktionen enthalten. Für Client/Server brauche ich offenbar die "wsock32.dll". Weiß jemand in welcher Unit die Deklarationen sind? Vielleicht sind sie ja dabei und man muß nur wissen wo. Importieren geht jedenfalls nicht.

Grüße von der Nordsee

Peter
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 24.02.15 20:15 
Moin!

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
wie es bisher aussieht, sind in der Unit "IpHlpApi" nur tcp/ip Funktionen enthalten.
Das ist die IP-Helper-API, das hat direkt mit TCP/IP erstmal weniger was zu tun. ;)

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Für Client/Server brauche ich offenbar die "wsock32.dll". Weiß jemand in welcher Unit die Deklarationen sind?
Was du suchst ist die Socket-API von Windows, konkret WinSock2.

Saug dir mal das hier und dann schau in die JwaWinsock2.pas rein. :les: :think:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Mi 25.02.15 13:45 
Hallo Narses,

danke auch für Deine Antwort. Aber eine kleine Anmerkung kann ich mir doch nicht verkneifen:
user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Das ist die IP-Helper-API, das hat direkt mit TCP/IP erstmal weniger was zu tun.

Stimmt nicht ganz: Hier werden Protokolle verwendet wie TCP, UDP und ICMP, also die Protokolle aus diesem Bereich. Siehe: msdn.microsoft.com/e...71%28v=vs.85%29.aspx
Die Winsock verwendet u.a. HTTP.

Die "JwaWinsock2.pas" ist genau richtig, nochmals danke. Nun fehlt nur noch das Prozedere. Ich habe zwar eine Beschreibung gefunden, aber die setzt nicht auf der Winsock auf. Vielleicht genügt sie, aber wenn jemand eine gute Beschreibung hat, die auf der Winsock aufsetzt wär ich sehr dankbar.

In einer Beschreibung ist von "TServerSocket und TClientSocket" die Rede. Vielleicht gibt es die ja auch bei Delphi 4 aber was muß ich dann bei "uses" eintragen??? Die Hilfe schweigt sich aus!

Grüße von der Nordsee

Peter
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 25.02.15 14:02 
Moin!

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Hier werden Protokolle verwendet wie TCP, UDP und ICMP, also die Protokolle aus diesem Bereich.
Ja, sicher, was hast du bei einer IP-Protokoll-Helper-API denn erwartet. :nixweiss: ;) Damit kannst du aber nicht "Daten übertragen" (jedenfalls nicht in dem Sinne, den du gesucht hast :arrow: Sockets).

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Die "JwaWinsock2.pas" ist genau richtig, nochmals danke. Nun fehlt nur noch das Prozedere.
Als ich das letzte Mal zu dem Thema ins MSDN geschaut habe, stand da noch alles drin, was man wissen muss. :les: :idea: Nun, WSA direkt macht keinen Spaß, aber das wolltest du ja so. :?

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
In einer Beschreibung ist von "TServerSocket und TClientSocket" die Rede. Vielleicht gibt es die ja auch bei Delphi 4 aber was muß ich dann bei "uses" eintragen?
Das sollte die Unit ScktComp(.dcu) sein (ist sie zumindest bei D6+). Ist deine Suchfunktion im Explorer kaputt? :lupe: :lol:

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Mi 25.02.15 18:31 
Hallo Narses,

nochmals Dank für Deine Antwort.

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Ja, sicher, was hast du bei einer IP-Protokoll-Helper-API denn erwartet.
Ich hatte nichts erwartet sondern mir den Hinweis von "Delphi-Laie" angesehen. Da ich dort nichts passendes gefunden habe, suchte ich nach anderen Möglichkeiten. Man muß ja erst mal reinsehen um zu wissen was da alles drinnen steckt!

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Als ich das letzte Mal zu dem Thema ins MSDN geschaut habe, stand da noch alles drin, was man wissen muss.
Kann ja durchaus sein, aber bisher habe ich dort nur die Beschreibung der Funktionen gefunden, aber keine Beschreibung für den Aufbau einer Verbindung. Natürlich kann man viel ausprobieren, aber warscheinlich gibt es irgentwo eine Beschreibung welche Schritte notwendig sind. Um die zu finden braucht man aber das richtige Stichwort! Falls Du weißt wo oder wie sie zu finden ist, wäre ein entsprechender Hinweis außerordentlich liebenswürdig!

user profile iconNarses hat folgendes geschrieben Zum zitierten Posting springen:
Das sollte die Unit ScktComp(.dcu) sein (ist sie zumindest bei D6+). Ist deine Suchfunktion im Explorer kaputt?
Die ist nicht kaputt! Aber 1. braucht man das richtige Stichwort (Siehe Oben!) und 2. heißt es noch lange nicht, dass man dann etwas findet. Z.B. such mal nach "jpeg" oder "winsock". Ich finde nichts, obwohl der Compiler diese Stichworte unter "uses" akzeptiert! Da sind wohl die .pas - Dateien nicht geliefert worden und Borland hat diese Units dummerhafter weise binär verpack. Sonst brauchte ich ja hier auch nicht so dumme Fragen zu stellen!

"ScktComp" akzeptiert der Compiler bei "Uses" nicht. Entweder hat die Unit einen anderen Namen oder sie ist nicht dabei! (Leider habe ich keine Liste der vorhandenen Units, das würde die Sache erheblich vereinfachen!)

Grüße von der Nordsee

Peter
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 25.02.15 19:54 
user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Da sind wohl die .pas - Dateien nicht geliefert worden und Borland hat diese Units dummerhafter weise binär verpack. Sonst brauchte ich ja hier auch nicht so dumme Fragen zu stellen!
Die sind nur ab der Professional dabei, nicht aber bei der Delphi 4 Standard. Bei Turbo Delphi Explorer waren sie allerdings auch dabei soweit ich mich erinnere, aber die möchtest du ja nicht.

Wenn ich jedenfalls in Delphi 4 Professional auf den Reiter Internet schaue, sehe ich als erstes dort ClientSocket und ServerSocket. Wenn ich TClientSocket eingebe und F1 drücke, kommt auch die Hilfe dazu. Wenn du die Standard Edition hast, weiß ich nicht, ob es da genauso aussieht.

Außerdem ist bei meinem Delphi 4 in den Demos ein Chat als Beispiel dabei. (Unter C:\Programme\Borland\Delphi4\Demos\Internet\Chat)
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Do 26.02.15 12:22 
Hallo jaenicke,

Dank für Deine Antwort!

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Bei Turbo Delphi Explorer waren sie allerdings auch dabei soweit ich mich erinnere, aber die möchtest du ja nicht.
Wenn ich sie kriegen kann, nehm ich sie natürlich. Man kann ja nur davon lernen!

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich jedenfalls in Delphi 4 Professional auf den Reiter Internet schaue, sehe ich als erstes dort ClientSocket und ServerSocket. Wenn ich TClientSocket eingebe und F1 drücke, kommt auch die Hilfe dazu. Wenn du die Standard Edition hast, weiß ich nicht, ob es da genauso aussieht.
Leider sind etliche vorhandene Units nicht in der Oberfläche eingetragen und nicht in der Hilfe, aber ich kann sie verwenden. Das macht die Sache ein wenig kompliziert.

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Außerdem ist bei meinem Delphi 4 in den Demos ein Chat als Beispiel dabei. (Unter C:\Programme\Borland\Delphi4\Demos\Internet\Chat)
Leider ist der ganze Ordner "Internet" nicht vorhanden, sonst hätte ich da schon gestöbert und mir angestehen wie die Dinge dort programmiert sind.

Grüße von der Nordsee

Peter
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 26.02.15 16:52 
user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Leider ist der ganze Ordner "Internet" nicht vorhanden, sonst hätte ich da schon gestöbert und mir angestehen wie die Dinge dort programmiert sind.
Dann bleibt dir wirklich nicht viel mehr als die reine API. Das macht nicht wirklich Spaß und der Aufwand ist ziemlich hoch...
Möglich ist das natürlich...

user profile iconPeter18 hat folgendes geschrieben Zum zitierten Posting springen:
Wenn ich sie kriegen kann, nehm ich sie natürlich. Man kann ja nur davon lernen!
Eine nette Mail an Embarcadero Deutschland wie in dem Link geschrieben sollte reichen.

Und mit Turbo Delphi kommst du auf jeden Fall deutlich schneller und vor allem einfacher ans Ziel.
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Mo 02.03.15 14:52 
Hallo jaenicke,

nochmals Dank für die Antwort! Ich hatte nun die Idee, Turbo Delphi auf einem anderen Rechner zu installieren (XP) und dort herauszufinden in welchen Units die nötigen Funktionen enthalten sind und sie dann in Delphi 4 zu verwenden.

Nur, die Hilfe funktioniert nicht. HTMLHelp2Viewer und DocExplorer machen schwierigkeiten. Liegt das an XP oder fehlt da noch irgend etwas? Hoffe jemand hat einen Tipp.

Grüße von der Nordsee

Peter
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 02.03.15 16:08 
Die Installation von Delphi installiert eigentlich alles Notwendige (insbesondere .NET). Und XP ist genau richtig für Turbo Delphi, weil es genau zu der Zeit auch entwickelt wurde.

Was bedeutet denn "machen schwierigkeiten"? Fehlermeldungen?
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Mo 02.03.15 17:12 
Hallo jaenicke,

und nochmals Dank!

"Microsoft Document Explorer hat ein Problem festgestellt." Das sind die Details:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
+ $21[531C601A]{htmlhelp2100.bpl} HTMLHelp2Viewer.HTMLHelp2Viewer.THTMLHelp2Viewer.InitDocExplorer (Line 812, "HTMLHelp2Viewer.pas" + 8) + $21
 + $3[531C6096]{htmlhelp2100.bpl} HTMLHelp2Viewer.HTMLHelp2Viewer.THTMLHelp2Viewer.GetDocExplorer (Line 820, "HTMLHelp2Viewer.pas" + 2) + $3
 + $16[531C5E8A]{htmlhelp2100.bpl} HTMLHelp2Viewer.HTMLHelp2Viewer.THTMLHelp2Viewer.DisplayTopic (Line 799, "HTMLHelp2Viewer.pas" + 10) + $16
 + $8[51F7CEFC]{rtl100.bpl  } HelpIntfs.HelpIntfs.THelpManager.ShowTopicHelp (Line 699, "HelpIntfs.pas" + 13) + $8
 + $14[52079C69]{vcl100.bpl  } Forms.Forms.TApplication.HelpJump (Line 7989, "Forms.pas" + 8) + $14
 + $F[00413E7A]{bds.exe     } AppMain.AppMain.TAppBuilder.cbDesktopKeyPress (Line 5564, "ui\AppMain.pas" + 4) + $F
 + $7[51F5FEFF]{rtl100.bpl  } Classes.Classes.TBasicAction.Execute (Line 11070, "classes.pas" + 3) + $7
 + $C[520586C8]{vcl100.bpl  } Controls.Controls.TControl.Perform (Line 5018, "Controls.pas" + 5) + $C
 + $1F[5205C56D]{vcl100.bpl  } Controls.Controls.TWinControl.IsControlMouseMsg (Line 7130, "Controls.pas" + 15) + $1F
 + $6[520B6029]{vcl100.bpl  } ComCtrls.ComCtrls.TToolBar.WndProc (Line 19404, "ComCtrls.pas" + 80) + $6
 + $6[5205C1A4]{vcl100.bpl  } Controls.Controls.TWinControl.MainWndProc (Line 7021, "Controls.pas" + 3) + $6
 + $0[51F60BC0]{rtl100.bpl  } Classes.Classes.StdWndProc (Line 11572, "classes.pas" + 8) + $0
 + $6A[7E368731]{USER32.dll  } GetDC + $6A
 + $14A[7E368811]{USER32.dll  } GetDC + $14A
 + $122[7E3689C8]{USER32.dll  } GetWindowLongW + $122
 + $A[7E3696C2]{USER32.dll  } DispatchMessageA + $A

Grüße von der Nordsee

Peter
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Di 03.03.15 16:24 
Ein freundliches Hallo an alle,

noch immer funktioniert die Hilfe nicht. Nach einigen Updates, gegen die sich der Rechner verzweifelt gewehrt hat, und weiteren Versuchen habe ich neue Informationen zu dem Problem gefunden:

In "bds:/JS/projektActions.js" in der Funktion
ausblenden JavaScript-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
function openDExplore(aLink)
{
  var session;
  session = new ActiveXObject("DExplore.AppObj");
  session.SetCollection("ms-help://borland.bds4""");
  session.Contents();
  session.DisplayTopicFromUrl(aLink);
}

tritt der Fehler bei "new ActiveXObject("DExplore.AppObj")" auf. Der "Internet Explorer 6" weigerte sich seinen Dienst aufzunehmen und behauptete es wäre eine neuere Version installiert. Bisher habe ich in der Sache noch keine nützliche Information finden können, außer folgender Info: Auf einer Seite wird der Aufruf mit "ProgID = DExplore.AppObj.7" beschrieben. Eine Suche in der Systemdatenbank ergab, "DExplore" taucht zwar auf, aber nicht als Klasseneintrag!

Hoffe jemand hat einen Tipp!

Grüße von der Nordsee

Peter
Peter18 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 489
Erhaltene Danke: 2


Delphi4
BeitragVerfasst: Di 03.03.15 19:37 
Ein freundliches Hallo an alle,

inzwischen habe ich die angegebenen nowendigen Komponenten rauf und runter installiert. Delphi weigert sich mit konstanter Bosheit die Hilfe anzuzeigen! Die Klasse fehlt noch immer. Inzwischen hab eine weitere Info zu diesem Thema gefunden in der eine "MSXML SDK" installiert wird. Dumm nur, dass ein Download derselben bei MS nicht funktionierte (Kam nix). Es sieht fast so aus, als ob der Fehler damit zusammenhängt. Hat jemand einen vertrauenswürdigen Link um an diese fehlende Klasse zu kommen oder weiß was da noch fehlt??

Grüße von der Nordsee

Peter