TCP

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

DelUser01

Re: TCP

Beitrag von DelUser01 »

Hallo Jan

vor einigen Jahren hatten wir uns verschiedenes mit den Netzwerk-Funktionen ausprobiert. Z.B. Erstellung einen Syslog-Server mit Xbase++ und Whois-Lookup.
Grundsätzlich liefen die Programme schon, aber es gab immer wieder Probleme so dass schlussendlich alle "Versuche" eingestellt wurden.
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: TCP

Beitrag von Wolfgang Ciriack »

Hallo Jan,
schon mal mit xbSocket() aus XB2.Net probiert ?
Falls nicht, würde ich mir mal die Demo von Boris laden und es damit probieren.
Ich habe damit eine Anbindung einer Fahrzeugwaage gemacht, klappt gut.
Viele Grüße
Wolfgang
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: TCP

Beitrag von Jan »

Hallo Wolfgang,

danke für den Tipp. Ich werde eventuell darauf zurückgreifen. Im Moment warte ich erst einmal auf eine Antwort von Alaska, ich hab denen gerade ein Ticket dazu geschickt.

Was mich dabei ein wenig irritiert hat ist, das die Asinet-dll noch die Version 1.0 von 2006 haben. Normaler Weise updated Alaska doch immer alles, wenn es eine neue Version gibt. Und die ist bei mir das SL1. Das muß kein Fehler sein, aber auf den ersten Blick ist das doch komisch.

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

Re: TCP

Beitrag von brandelh »

Grundsätzlich nutzen (soweit ich weiß) auch die AsiNet die API Routinen von Microsoft.
Phil hat in seinem Beispiel von LoadFromUrl() die Microsoft API Funktionen verwendet, ob die jetzt aber für sockets geeignet sind kann ich nicht sagen.
In PowerBasic (nutzt intern auch die API) kann ich direkt TCP ansprechen und habe damit auch eMail und HTTP Funktionen nachgebaut, die waren immer langsamer als die höheren Protokolle der ASINET :!:

Ich vermute, dass es an einem TIMEOUT Parameter liegt :!:

Wenn eine Socketfunktion wartet ob noch weitere Daten kommen, wartet sie bis zum TimeOut, wenn sie vorher weiß es kommen 20 Byte, kann man sagen empfange 20 Byte.
In diese Richtung würde ich das Problem vermuten ... ja vermuten, denn praktisch habe ich vor einigen Jahren nur mit dem Beispiel experimentiert.

Ich habe mir auch die sockettools gekauft (die haben alle Protokolle drin), aber diese noch nicht aus Xbase++ angesprochen.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: TCP

Beitrag von Jan »

Hallo Hubert,

welche sockettools? Vielleicht kann ich ja auch die mal in Betracht ziehen.

Und die Strings, die ich empfangen will, sind sehr kurz. Ich habe die auf 50 Zeichen eingestellt, das reicht vollkommen. Die meisten werden nicht länger als 15 Zeichen sein.

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

Re: TCP

Beitrag von brandelh »

Schau dir mal das Beispiel von Alaska an, die vereinbaren in den ersten 4 Zeichen (aus der Erinnerung) wie lange der String sein wird und genau das fragen die ab.
Auch wenn du nur auf 50 Zeichen wartest und der String 25 lang ist, wartest du bis der TIMEOUT kommt.
Wenn du weißt wie lange eine Antwort sein müsste, dann solltest du genau das abfragen ...

Ich hatte damals versucht einen TCPIP DBF Server zu erstellen, wegen Stabilitätsproblemen habe ich das aber abgebrochen.

Mit den Sockettools meine ich die hier:

:arrow: http://sockettools.com/sockettools-library-edition/

Meine Überlegung war, einen Quellcode für PowerBasic und Xbase++ über diese zu bekommen und als die ein Sonderangebot hatten, habe ich zugeschlagen.
Ich bin aber noch nicht dazu gekommen es umzusetzen.
Gruß
Hubert
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: TCP

Beitrag von Jan »

brandelh hat geschrieben:Auch wenn du nur auf 50 Zeichen wartest und der String 25 lang ist, wartest du bis der TIMEOUT kommt.
Wenn du weißt wie lange eine Antwort sein müsste, dann solltest du genau das abfragen ...
Ah! Das wäre eine Idee. Muß ich mal ausprobieren. Ich hatte in den Alaska-Samples das mit den 4 Zeichen gesehen, das aber als Beispiel gesehen, ohne so weitreichende Konsequenzen.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: TCP

Beitrag von Werner_Bayern »

Jan hat geschrieben:Ich soll dafür ein Modul schreiben, mit dem man Werte abfragen kann, und bei Bedarf auch setzen kann.
Servus Jan,

ich bräuchte sowas auch, einen einfachen Kontakt (Riegelschaltkontakt, hab ich schon was gefunden) abfragen, nur 0/1. Was ist da die einfachste, günstigste Lösung, nur Abfrage, muss also nicht mal was geschaltet werden. Was brauche ich dazu, um das Signal am PC per Xbase++ abzufragen. Conrad Electronics?
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: TCP

Beitrag von brandelh »

So wie ich JAN verstehe, muss er mit einer GIRA Haussteuerung Daten austauschen.
Einfache Schaltvorgänge kann man im Prinzip sogar auf einer RS232 (falls vorhanden) oder am LPT Port machen.
Ich meine sowas mit Basic Beispielen und USB Anschluß gesehen zu haben ... schau mal bei POLIN, CONRAD oder ELV ...

z.B. sowas

http://www.elv.de/velleman-k8055n-usb-e ... usatz.html
Gruß
Hubert
Antworten