Socket Verbindungen ...

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Socket Verbindungen ...

Beitrag von brandelh »

Hallo,

in der prof. sub. gibt es ein Beispiel für Client-/Server über TCPIP mit ASINET (socket...).
Im lokalen Netzwerk konnte ich den Server nicht in die Knie zwingen, über das Internet gibt es ab und an eine Fehlermeldung.

Hat jemand von euch Erfahrungen mit diesem Teil der AsiNet ?

Der Grundgedanke daran ist, dass nur ein PC im peer Netzwerk lokal die Daten hält, alle anderen über TCPIP diese anfordern.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Socket Verbindungen ...

Beitrag von brandelh »

Hi,

Phil hat einen DBFServer in seiner Sammlung, hat damit jemand Erfahrung ?
Der nutzt auch die TCPIP Socket Verbindungen ... für mich halt immer noch Neuland ;-)

... obwohl die sicher auch für LoadFromURL herhalten müssen ... 8)
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Socket Verbindungen ...

Beitrag von brandelh »

Hi,

scheinbar sind die Erfahrungswerte hier nicht sehr groß mich Windows Sockets ;-)

ich berichte mal von meinen Erfahrungen ...

1. ASINET liefert ein einfaches Beispiel, was im lokalen Netz normalerweise gut funktioniert ...
2. Leider konnte ich jedoch heute Morgen den Server nicht starten, wegen "zuwenig Speicher ..." ??? sehr seltsam, sonst lief nichts, gestern ging es noch :?
3. Phils DBFServer beseitigt das Problem, dass speziell über das Internet die Daten etwas länger brauchen als gewünscht und
dort habe ich mir die kleine Schleife besorgt, die den Empfang aller Bytes eines Paketes sicherstellen soll.
4. 3 PCs mit je 40 gestarteten automatischen Abfrageprogrammen (im eigenen NETZ !) fordern im Sekundentakt jeweils Daten an, das entspricht auf dem "Server" PC also 120 Clients pro Sekunde.
Von den 120 Zugriffen werden zwischen 20 und 25 % bei der ersten Abfrage zurückgewiesen (vom Netz, das Serverprogramm merkt davon nichts).
Bei 5 möglichen Wiederholungen werden nur noch 5 % nicht beantwortet, bei 10 werden meist alle beantwortet.
Die 10 Wiederholungen laufen hier mit sleep(1) und 0,3 Sekunden pro Anfrage meist unter 3 Sekunden durch.
5. Was wäre bei 120 PCs mit DBF Dateien die auf einen SERVER zugreifen, Client PCs können das nicht ...
Die Ergebnisse wären sicher nicht besser, die Indexe wären aber in größerer Gefahr.

Eines muss ich aber noch probieren, es könnte ja sein, dass die maximale Verbindungszahl je Client-PC nicht NUR auf die
gemappten Netzlaufwerke abzielt, sondern auch bei den eingehenden TCP/IP Verbindungen kappt.
Am Wochenende werde ich mir einige Laptops leihen und die Rechneranzahl erhöhen ;-)

PS: der aktuelle "Server" PC ist ein AMD Athlon 64 3000+ mit 1 GB RAM, den eigentlichen Server konnte ich nicht nutzen,
da dieser die offenen IP Verbindungen überhaupt nicht erkannt dennoch aber unterbunden hat.
Die Firewall habe ich sogar abgeschaltet, dennoch konnte ich auf das SERVER Programm nicht zugreifen wenn es auf dem Homeserver lief. ...

Ich denke dennoch, dass dies ein interessanter Weg ist um einerseits die Verwaltung eines SQL Servers und andererseits
die Begrenzung der Netzwerklaufwerke mit DBFs zu umgehen. Aber warum startet der SERVER heute morgen nicht :angry4: :angry5: angry9:

:D
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Socket Verbindungen ...

Beitrag von Martin Altmann »

Hubert,
sockets laufen nur innerhalb eines Netzes - um genau zu sein, innerhalb eines subnetzes! Also ein Router dazwischen, und aus!
Server dicht: Du wirst wohl Deine Ressourcen nicht ordentlich freigeben ;-)
Die Probleme hatte ich in der Vergangenheit auch - da gibt es einige PDRs dazu! Mit den aktuellen XB2.NET- und Xbase++-Versionen ist das Verhalten besser geworden :!:

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Socket Verbindungen ...

Beitrag von brandelh »

Martin Altmann hat geschrieben:Hubert,
sockets laufen nur innerhalb eines Netzes - um genau zu sein, innerhalb eines subnetzes! Also ein Router dazwischen, und aus!
Möglich dass ich einen falschen Begriff gewählt habe, aber für das was ich mache stimmt das auf keinen Fall !

Ich habe die SERVER EXE schon auf meinem PC hinter der Fritzbox laufen.
In der Fritz.BOX habe ich eine Port Freigabe eingerichtet (ROUTER -> PC mit SERVER.EXE) und einem Rechner über Funknetz zugegriffen, die anderen per DynDns Internetadresse erst raus dann rein. Alles kein Problem.

Auch ein "CLIENT MeineDynDnsAdresse" hat sauber funktioniert. DAS geht also sehr wohl, wenn man die Weiterleitung nutzt.

Bei PowerBasic steht dazu ...

"The Internet Protocol driver in Winsock actually sends and receives the datagrams itself, and the UDP and TCP layers take care of data integrity."

ASINET nennt es

"TCP/IP Sockets: These functions provide a complete interface to the Windows sockets. They are used for inter process communication via TCP/IP. "

Auf dem HOMESERVER war es übrigens kein Problem den Apache oder FILEZILA anzubieten. Das hat die Firewall gemeldet und die Ausnahmen waren schnell eingetragen. Die SERVER.EXE wird aber überhaupt nicht moniert, das wundert mich.
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16517
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Socket Verbindungen ...

Beitrag von Martin Altmann »

Halt - Stop! Hast Recht - habe das Durcheinander geschmissen mit RPC bzw. named pipes!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15697
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 66 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Socket Verbindungen ...

Beitrag von brandelh »

Hi,

nach einigen Verbesserungen (Datenempfang in Schleife mit Abbruch nach Zeitüberschreitung) kann ich nun
auf den Server mit den Clients zugreifen, allerdings nicht so viele Instanzen pro PC, da gehen den Netzwerkkarten
wohl die Resourcen aus ...

9 PCs je 3 CLIENT Instanzen greifen fehlerfrei (bei max. 3 Abfrageversuchen) auf die SERVER.EXE zu.
Das Ganze ist auch schnell, allerdings frisst die SERVER.EXE den RAM direkt auf.
Beim Start 7 MB, nach etwa 2000 Zugriffen 15 MB ... so geht es also nicht.

Nach Info von 3. Seite (Martin war es nicht ;-) ) soll XB2.NET das wesentlich besser können !

PS:

ich kam dazu weil ich an dachte mehr als 5 PC könnten nicht auf eine PEER 2 PEER Netzwerkfreigabe zugreifen.
Das ist so aber nicht richtig.
Heute habe ich einen Test mit 9 PCs auf die Windowsfreigabe einer Win7 Home Premium und auf Win2000 Profesional durchgeführt.
Man muss dabei nur die gleichen BENUTZERNAMEN auf den einzelnen PCs verwenden, dann geht es auch :D

Mit NTX konnte ich mit 9 PCs a 5 Zugriffen pro Sekunde (10% append blank, 90 % dbseek)
über WLAN und LAN mit Win7, WinXP, WinVista und Win2000 gemischt keinen Fehler produzieren.

Mit CDX kam es auf der Station die die Festplatte zur Verfügung stellt zu einem Betriebsystemfehler bei DBSEEK() nach einiger Zeit.
Unbekannte Funktion ... ob das bei 1.90.331 bzw. ungepachter 1.90.355 auch der Fall ist weiß ich nicht.
Wäre ich doch bei NTX geblieben ;-)

ABER immerhin, wenn man den Computernamen zur Unterscheidung nimmt können die USERNAMEN ruhig gleich sein.

PPS:

Änderungen für XBase++ habe ich nicht eingesetzt.
Gruß
Hubert
Benutzeravatar
andreas
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1902
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Hat sich bedankt: 4 Mal
Kontaktdaten:

Re: Socket Verbindungen ...

Beitrag von andreas »

Hallo Hubert,

die normalen Windows Workstations sind auf 10 Verbindungen begrenzt. So könntest du z.B. IIS auf einem Win XP laufen lassen, wo nur 10 Clients die Verbindung zum Server aufbauen könnten.

Das Problem mit den Speicherfressern hatte ich nur in den Fällen mit Threads, wo alle paar Minuten im Taskmanager der Speicherverbrauch sich ständig um 4 K erhöht hat.
Gruß,

Andreas
VIP der XUG Osnabrück
Antworten