Seite 1 von 2

Socket-Server

Verfasst: 04.11.2014 10:06
von stevie1401
Wie komme ich mit Spiderbasic auf einen Socket-Server?
Würde folgendes Funktionieren?

Code: Alles auswählen

  Port = 51401
  ConnectionID = OpenNetworkConnection(ServerID, Port,#PB_Network_TCP)
  Laenge = ReceiveNetworkData(ConnectionID, *MemoryID, Puffergroesse)

Re: Socket-Server

Verfasst: 12.02.2016 11:09
von stevie1401
Gibt es inzwischen eine Möglichkeit sich mit Spider-Basic mit einen Socket-Server zu verbinden?

Re: Socket-Server

Verfasst: 12.02.2016 11:55
von Kiffi
stevie1401 hat geschrieben:Gibt es inzwischen eine Möglichkeit sich mit Spider-Basic mit einen Socket-Server zu verbinden?
das geht meines Erachtens nur über den Umweg, dass Du Dir mit PureBasic ein CGI erstellst, welches Du dann in SpiderBasic mit HTTPRequest() aufrufst.

Grüße ... Peter

P.S.: Bis sich SpiderBasic etabliert hat, dürfte die Chance auf eine Antwort zu Fragen bzgl. SpiderBasic im entsprechenden Forum größer sein: http://forums.spiderbasic.com/

Re: Socket-Server

Verfasst: 02.05.2016 08:18
von stevie1401
Ich weiss leider nicht was ein CGI ist.
Kannst du mir vielleicht ein Beispiel geben?

Re: Socket-Server

Verfasst: 02.05.2016 08:26
von mhs
CGI ist eine Art eines Gateways, die es dir ermöglicht über einen Webserver z.B. ein PB Programm auszuführen und Daten zwischen Webserver und Programm auszutauschen. Dadurch würdest du Spiderbasic für die Interaktion auf dem Client nutzen und PB im Hintergrund auf dem Webserver für die Socketkommunikation.

Entsprechende Beispiele müssten eigentlich hier oder im SpiderBasic Forum unter dem Begriff "CGI" zu finden sein.

Re: Socket-Server

Verfasst: 02.05.2016 08:32
von stevie1401
Weder der SB-Editor, noch die Hife kennen das Wort CGI, es gibt auch kein Beispiel in den Examples. Im Forum kann ich auch nichts darüber finden. Das Wort lese ich zum erstenmal.
Ein Beispiel wäre schön.

Re: Socket-Server

Verfasst: 02.05.2016 08:39
von mhs

Re: Socket-Server

Verfasst: 02.05.2016 09:39
von stevie1401
Ok, vielen dank.
Leider verstehe ich nur Bahnhof.
Ich möchte entweder mit Spiderbasic auf meinen Socket-Server oder mit Spiderbasic erst einen Web-Server erstellen und dann mit Spiderbasic einen Client-Server-Dialog aufbauen.
Welche Funktion hat Purebasic denn nun dabei?

Ich wäre sehr dankbar über ein Server-Client-BEISPIEL, nur so kann ich verstehen.

Re: Socket-Server

Verfasst: 02.05.2016 09:59
von stevie1401
Folgendes Beispiel habe ich mit Purebasic 5.42 compiliert.
Dann habe ich auf meiner Homepage einen Ordner "cgi-bin" erstellt und die compilierte Datei dort hinein kopiert.

Was soll ich nun genau aufrufen und was bewirkt dieses Programm?
Ist das ein Server oder ein Client?
Verbindet dieses Programm sich - wie auch immer - mit meinem Socket-Server und wenn ja, was nützt mir das?

Als was muss ich das speichern? Als HTML? Z.B. Index.html?
Rufe ich doko-lounge.de/cgi-bin auf, passiert nichts.


Code: Alles auswählen


;
; ------------------------------------------------------------
;
;   PureBasic - CGI example file
;
;    (c) Fantaisie Software
;
; ------------------------------------------------------------
;

; To test it, you will need to compile it as an standalone executable and put it in the /cgi-bin/ folder of your
; webserver.
;

If Not InitCGI() Or Not ReadCGI()
  End
EndIf

WriteCGIHeader(#PB_CGI_HeaderContentType, "text/html", #PB_CGI_LastHeader) ; Write the headers to inform the browser of the content format

WriteCGIString("<html><title>PureBasic CGI</title><body>")  

Procedure WriteCGIConstant(Constant$)
  WriteCGIString(Constant$ + ": " + CGIVariable(Constant$)+"<br>")
EndProcedure

WriteCGIConstant(#PB_CGI_AuthType)
WriteCGIConstant(#PB_CGI_ContentLength)
WriteCGIConstant(#PB_CGI_HeaderContentType)
WriteCGIConstant(#PB_CGI_DocumentRoot)
WriteCGIConstant(#PB_CGI_GatewayInterface)
WriteCGIConstant(#PB_CGI_PathInfo)
WriteCGIConstant(#PB_CGI_PathTranslated)
WriteCGIConstant(#PB_CGI_QueryString)
WriteCGIConstant(#PB_CGI_RemoteAddr)
WriteCGIConstant(#PB_CGI_RemoteHost)
WriteCGIConstant(#PB_CGI_RemoteIdent)
WriteCGIConstant(#PB_CGI_RemotePort)
WriteCGIConstant(#PB_CGI_RemoteUser)
WriteCGIConstant(#PB_CGI_RequestURI)
WriteCGIConstant(#PB_CGI_RequestMethod)
WriteCGIConstant(#PB_CGI_ScriptName)
WriteCGIConstant(#PB_CGI_ScriptFilename)
WriteCGIConstant(#PB_CGI_ServerAdmin)
WriteCGIConstant(#PB_CGI_ServerName)
WriteCGIConstant(#PB_CGI_ServerPort)
WriteCGIConstant(#PB_CGI_ServerProtocol)
WriteCGIConstant(#PB_CGI_ServerSignature)
WriteCGIConstant(#PB_CGI_ServerSoftware)
WriteCGIConstant(#PB_CGI_HttpAccept)
WriteCGIConstant(#PB_CGI_HttpAcceptEncoding)
WriteCGIConstant(#PB_CGI_HttpAcceptLanguage)
WriteCGIConstant(#PB_CGI_HttpCookie)
WriteCGIConstant(#PB_CGI_HttpForwarded)
WriteCGIConstant(#PB_CGI_HttpHost)
WriteCGIConstant(#PB_CGI_HttpPragma)
WriteCGIConstant(#PB_CGI_HttpReferer)
WriteCGIConstant(#PB_CGI_HttpUserAgent)

WriteCGIString("</body></html>")




Re: Socket-Server

Verfasst: 02.05.2016 10:28
von Kiffi
stevie1401 hat geschrieben:Folgendes Beispiel habe ich mit Purebasic 5.42 compiliert.
Dann habe ich auf meiner Homepage einen Ordner "cgi-bin" erstellt und die compilierte Datei dort hinein kopiert.

Was soll ich nun genau aufrufen und was bewirkt dieses Programm?
Der Aufruf lautet: doko-lounge.de/cgi-bin/[NameDeinerExe]

Allerdings muss Dein WebServer (welchen hast Du? Apache? IIS?, ...?) auch wissen, was geschehen soll, wenn dieser Aufruf reinkommt.

Wenn Du dort nicht hinterlegt hast, dass es sich um eine ausführbare Datei handelt und dass deren Output an den Aufrufer gesendet werden soll, dann wird Dir lediglich ein Download der Exe angeboten.

Wenn der WebServer richtig konfiguriert ist, dann wird die Exe ausgeführt und die Informationen, die Du mit dem CGI-Beispielcode (WriteCGIConstant()) ausgibst, an den Aufrufer (in Deinem Fall der Browser) gesendet.

Grüße ... Peter