 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 23.02.2009, 23:03 Titel: Server -> TSNE_V2.bi |
|
|
Hallo zusammen,
ich wollte mir eigendlich einen ganz einfachen Server entwickeln, mit Hilfe der Bibliothek TSNE_V2.bi
Was sollte er können?
Zuerst einmal sollte er auf Daten beim Port warten.
z.B. auf den Text: "Hallo du da drüben&passwort=12345"
Wenn der Text beim Server "Port" eingeht, dann soll es an den Clienten zuerst einmal folgendes schicken:
Ja, deine Daten, kamen bei mir an.
Dieser Text sollte dann auch beim Clienten logischerweise erscheinen.
Ist momentan sehr simple, aber mehr an Wissen benötige ich momentan nicht.
Im weiteren wollte ich etliches entwickeln.
Cu Andy |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 24.02.2009, 01:06 Titel: |
|
|
nun .. erstma würde ich sagen, nimmste die Version 3 von TSNE, weil die 2er nicht weiter entwickelt wird, und daher auch keine bugfixes mehr kommen.
Auf der >Projektseite sind einige beispiele zur serverentwicklung.
TSNE basiert auf sogenannten "Callback's" .. das heist, das tsne selbstständig funktionen aufrufen kann, die sich in deinem Programm befinden. Diese Funktionen muss man tsne mitteilen, wenn man einen Server oder client erstellt.
Tritt ein ereigniss auf, z.B. das ein client eine verbindugn wünscht, das neue daten eintreffen, das eine verbindung geschlossen wurde, usw. dann ruft tsne eine von dir in deinem programm festgelegte funktion auf. Anschliessend kannst du dieses ereigniss verasrbeiten, sofern es von nöten ist.
Das Simpelste Serverbeispiel ist wohl http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=740
Es ist ein extrem einfacher HTTP-Server. Der HTTP Teil, sprich, der teil, der das HTTP-Protokoll nachbildet ist ganz am ende zu finden. Das Beispiel ist vollständig und sehr umfangreich dokumentiert, und sollte keine probleme veruhrsachen.
Das Beispiel kann man als grundgerüt nutzt um allgemein server zu konstuieren. Es beinhaltet bereits eine einfache Client-Managment struktur, verwaltung von eingehenden Daten, Maximal verbindungen, automatische annahme von clienten, usw.
Im grunde brauchst du, wenn du kein HTTP willst, nur den teil nach:
Code: | 'Hier können wir jetzt unsere Daten verarbeiten welche in TData stehen |
löschen. Dies ist nämlich der teil vom Server, der das HTTP-Protokoll implementiert.
Statdessen kannst du dann deine eigenen routinen verwenden und einbauen.
Allerdings schlage ich einfach mal vor, das du dir das ganze durchliest, bevor du was löscht, weil dort auch beschrieben wird, wie man mit den Threads und mutexen umgeht so, wie das senden von Daten.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 24.02.2009, 18:12 Titel: |
|
|
Sorry,
aber ich komme kein Stück weiter.
Zudem bekomme ich Fehler, wenn ich das Beispielprogramm "http Server" verwende. |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 24.02.2009, 18:40 Titel: |
|
|
Andy19312 hat Folgendes geschrieben: |
Sorry,
aber ich komme kein Stück weiter.
|
Dann ist das vllt. noch kein Thema für dich? _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 24.02.2009, 18:40 Titel: |
|
|
 |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 24.02.2009, 18:42 Titel: |
|
|
Du benutzt den IE?!  _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 24.02.2009, 19:08 Titel: |
|
|
Glaubst du etwa, ich erstell mir das Bild nochmal extra mitn Firefox!?
Oder schreib mir nen zweizeiler der mir die Messagebox erzeugt? Nene, dafür bin ich doch viel zu faul
Ich hab mich beim Lesen seines Posting nur daran erinnert, dass ich dochmal so ein Bild auf der Platte hatte^^ |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 25.02.2009, 01:15 Titel: |
|
|
@Andy19312
ein fehler ist nicht schön, das geb ich zu, aber wenn du möchtest, das ich dir auch helfen, ihn zu beseitigen, wäre e sganz hilfreich, wenn du mir den fehler mit in deine antwort postest
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 25.02.2009, 20:08 Titel: |
|
|
Code: |
#include once"TSNE_V3.bi" 'Die TCP Netzwerkbibliotek integrieren
Dim Shared G_Server as UInteger 'Eine Variable für den Server-Handel erstellen
Sub TSNE_NewConnection (ByVal V_TSNEID as UInteger, ByVal V_RequestID as Socket, ByVal V_IPA as String)
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Wird ausgelösst wenn ein Server eine neue Verbindungsanfrage erhalten hat.
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_TSNEID = Hier findet sich die TSNE-ID des Servers, welcher eine Anfrage erhalten hat.
'V_RequestID = Enthält eine Socket-Nummer welche den Anfragenden Identifiziert und muss bei einem
' TSNE_Create_Accept übergeben werden!
'V_IPA = Enthält die IP-Adresse des Anfragenden.
end sub
Sub TSNE_NewConnectionCanceled (ByVal V_TSNEID as UInteger, ByVal V_IPA as String)
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Wird ausgelösst wenn eine Verbindungsanfrage AUTOMATISCH vom Server verweigert wurde.
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_TSNEID = Hier findet sich die TSNE-ID des Servers, welcher eine Anfrage erhalten hat.
'V_IPA = Enthält die IP-Adresse des Anfragenden.
end sub
Sub TSNE_NewData (ByVal V_TSNEID as UInteger, ByRef V_Data as String)
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'Beschreibung: Wird ausgelösst wenn eine Verbindung neue Daten Empfangen hat.
'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
'V_TSNEID = Hier findet sich die TSNE-ID der Verbindung, welche neue Daten empfangen hat.
'V_Data = Enthält die Daten, welche Empfangen wurden. (KEIN 0-Terminierter ZString!!!)
end sub
do
Dim RV as Long 'Eine Statusrückgabe Variable
RV = TSNE_Create_Server(G_Server, 1234, 10, @TSNE_NewConnection, @TSNE_NewConnectionCanceled) 'Server erstellen
sleep 1000
loop
sleep
|
Sodelle, also einen Server dürfte ich doch erstellt haben.
Nun meine Frage, wie kann ich auf Daten warten.
z.B schickt jemand auf den Port 1234 "HALLO WELT" dann sollte der Server daraufhin dem Client antworten "JA HALLO WELT".
Wiegesagt habe ich mit Port Erstellung noch nie was am Hut gehabt.
Nur ich möchte es gerne hinbekommen.
Ich denke mal, dafür ist doch ein Forum da oder? |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 25.02.2009, 20:43 Titel: |
|
|
Code: | #Include Once "TSNE_V3.bi"
Declare Sub TSNE_Disconnected(ByVal V_TSNEID as UInteger)
Declare Sub TSNE_Connected(ByVal V_TSNEID as UInteger)
Declare Sub TSNE_NewData(ByVal V_TSNEID as UInteger, ByRef V_Data as String)
Declare Sub TSNE_NewConnection(ByVal V_TSNEID as UInteger, ByVal V_RequestID as Socket, ByVal V_IPA as String)
Declare Sub TSNE_NewConnectionCanceled(ByVal V_TSNEID as UInteger, ByVal V_IPA as String)
Dim Shared As UInteger Server
Dim As Integer ret
ret = TSNE_Create_Server(Server, 1234, 20, @TSNE_NewConnection, @TSNE_NewConnectionCanceled)
If ret <> -1 Then
Print "Fehler", TSNE_GetGURUCode(ret)
Sleep
End
EndIf
Print "ok"
Do
Sleep 1
Loop Until InKey = Chr(27)
TSNE_Disconnect(Server)
TSNE_WaitClose(Server)
End
Sub TSNE_Disconnected(ByVal V_TSNEID as UInteger)
Print "Verbindung getrennt"
End Sub
Sub TSNE_Connected(ByVal V_TSNEID as UInteger)
Print "Verbindung hergestellt",V_TSNEID
End Sub
Sub TSNE_NewConnection(ByVal V_TSNEID as UInteger, ByVal V_RequestID as Socket, ByVal V_IPA as String)
Dim XNew_TSNEID as UInteger
Dim XReturnIPA as String
Print "Verbinde mit Client - IP: " & V_IPA
TSNE_Create_Accept(V_RequestID, XNew_TSNEID, XReturnIPA, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData)
Print "Verbindung mit " & XReturnIPA & " hergestellt"
End Sub
Sub TSNE_NewData(ByVal V_TSNEID as UInteger, ByRef V_Data as String)
TSNE_Data_Send(V_TSNEID,"JA"+V_Data)
End Sub
Sub TSNE_NewConnectionCanceled(ByVal V_TSNEID as UInteger, ByVal V_IPA as String)
Print "Blocke " & V_IPA
End Sub |
So in der Art vielleicht? |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 25.02.2009, 20:53 Titel: |
|
|
Also .. noch kompackter is es fast nicht möglich.
Code: | #include once "TSNE_V3.bi"
'##############################################################################################################
'Dieses Callback ist für den Empfang neuer Daten zuständig.
Sub TSNE_NewData(ByVal V_TSNEID as UInteger, ByRef V_Data as String)
'Die Funktion übermitelt die TSNE-ID der Verbindung, welche uns daten gesendet hat
'sowie in V_Data, die eigentlichen Daten selbst, die versendet wurden.
Print "Neue Daten: ["; V_TSNEID; "] "; V_Data
'Da wir auf ein bestimmtes Datenpacket waren, prüfen wir jetzt, ob das Datenpacket auch das ist, das wir suchen
If V_Data = "HALLO WELT" Then
'Ist das gesuchte Datenpacket das, was wir wollen, dann antworten wir
'Dabei nutzen wir die TSNEID die uns die daten gesendet hat und schicken an diese unsere antwort zurück
TSNE_Data_Send(V_TSNEID, "JA HALLO WELT")
End If
End Sub
'##############################################################################################################
'Dies ist das Callback für eine neue Verbindungsanfrage eines Clienten an unseren Server
Sub TSNE_NewConnection(ByVal V_TSNEID as UInteger, ByVal V_RequestID as Socket, ByVal V_IPA as String)
Dim TNewTSNEID as UInteger 'Diese Variable speichert die TSNE-ID der neuen, akzeptierten Verbindung
Dim TReturnIPA as String 'Das ist die IP-Adresse der akzeptierten verbindung
'Hier akzeptieren wir die Verbindungsanfrage, die durch die "RequestID" identifiziert wird.
'Die Funktion liefert uns anschliessend die neue TSNE-ID dieser akzeptierten verbindung zurück
'sowie die IP-Adresse der Verbindung.
'Auserdem müssen wir der verbindung noch unsere Callbacks mitteilen
'Die erste 0 ist für ein nicht existentes Disconnect callback
'die zweite 0 für ein nicht existentes Connected callback
'und der letzte Pointer zeigt auf ein NewData callback, das empfangene Daten signalisiert
Dim RV as Integer = TSNE_Create_Accept(V_RequestID, TNewTSNEID, TReturnIPA, 0, 0, @TSNE_NewData)
'In RV steht dann deie Statusnummer (GURU-Code)
If RV <> TSNE_Const_NoError Then 'Ist diese Rückgabe ungleich der Konstante TSNE_Const_NoError
Print "Neue Verbindung: [FEHLER] "; TSNE_GetGURUCode(RV) 'Dann entstand ein fehler, und wir geben diesen fehler aus.
'ein solcher Fehler führt meist dazu, das die verbindung nicht
'akzeptiert werden konnte
Else 'ansonsten
Print "Neue Verbindung: ["; NewTSNEID; "] [OK] "; V_IPA; 'ist die verbindung erfolgreich gewesen.
End if
End Sub
'##############################################################################################################
'Das ist das Hauptprogramm
Dim Shared G_Server as UInteger 'Zuerst erstellen wir eien Variable, welche die TSNE-ID des servers speichert
'Diese ID identifiziert den Server selbst, und nicht die clienten.
'Jede Verbindung, Ob server oder client, bekommt eine eigene TSNE-ID
'Jetzt erstellen wir den eigentlichen Server, dessen ID in G_Server gespeichert wird.
'Nötig sind mindestens 3 zusätzliche Parameter, die einmal den Port (1234), dann die Anzahl simultaner Verbindungsanfragen
'welche zwischengespeichert werden sollen (10), sowie ein Callback, das für die entgegennahme der Verbindungswünsche zuständig ist.
'die letzte 0 ist ein Callback auf eine nicht existente Callback struktur, die bei automatisch abgewiesenen Verbindungswünschen aufgerufen würde
'Da wir jedoch keine Black oder Whitelist verwenden, brauchen wir diese auch nicht angeben, also kommt eien 0 rein.
Dim RV as Integer = TSNE_Create_Server(G_Server, 1234, 10, @TSNE_NewConnection, 0)
'Anschliessend schon wie bei der NewConnection funktion auch, prüfen wir den erfolg dieses Aufrufs.
If RV <> TSNE_Const_NoError Then
Print "[SERVER] [FEHLER] " & TSNE_GetGURUCode(RV)
Print "[END]" 'Da wir ohne Server keinen Server haben, beenden wir das Programm.
End 0 'Mit Returncode 0
End if
'ansonsten melden wir den erfolgreiche erstellung des Servers
Print "[SERVER] wait for ESC push..." 'Ausgeben das wir auf ein ESC Tastendruck warten
Do 'Wir poolen den Tastenabfrage
Sleep 1, 1 'Kurz warten um die CPU auslastung massiv zu verringern
Loop until InKey() = Chr(27) 'Prüfen ob ein ESC gedrückt wurde. Wenn ja, dann shcleife verlassen
Print "[SERVER] ESC pushed!" 'Und ausgeben was wir das ESC erkannt haben
Print "[SERVER] Disconnecting..." 'Mitteilen das wir den Server beenden
RV = TSNE_Disconnect(G_Server) 'Server-Socket beenden
If RV <> TSNE_Const_NoError Then Print "[SERVER] [FEHLER] " & TSNE_GetGURUCode(RV) 'Wenn ein Fehler entstand, dann geben wir diesen aus
Print "[SERVER] Wait disconnected..." 'Ausgeben das wir trotzdem auf den Disconnect warten
TSNE_WaitClose(G_Server) 'Wir warten auf das ende der serververbindung
Print "[SERVER] Disconnected!" 'Server wurde beendet
Print "[END]" 'Wir sind fertig
End 0 'Und beenden das Programm mit dem Returncode: 0 |
Aber das ist in etwa der kleinste Server, den man so schreiben kann. Natürlich kann man hier noch massig komprimieren, udn eventuell vieles raus nehmen, das eigentlich unnötig ist, aber um dir zu verdeutlichen, was wie wann funktioniert, ist das wohl die kleinste Version.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Zuletzt bearbeitet von ThePuppetMaster am 26.02.2009, 03:27, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 25.02.2009, 21:22 Titel: |
|
|
Der Programmiercode funktioniert leider nicht ;(
Ich bekomme Fehlermeldung wie :
Code: |
C:/Programme/FreeBASIC/server.bas(38) error
41: Variable not declared, TSNE_Const_NoError in 'IF RV <> TSNE_Const_NoError THEN 'Ist diese Rückgabe ungleich der Konstante TSNE_Const_NoError'
C:/Programme/FreeBASIC/server.bas(38) warning 12(0): Implicit variable allocation, TSNE_Const_NoError
C:/Programme/FreeBASIC/server.bas(43) error 41: Variable not declared, V_NewTSNEID in 'PRINT "Neue Verbindung: "; V_IPA; 'ist die verbindung erfolgreich gewesen.'
C:/Programme/FreeBASIC/server.bas(43) warning 12(0): Implicit variable allocation, V_NewTSNEID
C:/Programme/FreeBASIC/server.bas(64) warning 12(0): Implicit variable allocation, TSNE_Const_NoError
|
seltsam |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 25.02.2009, 21:35 Titel: |
|
|
Mein Code geht, aber ich benutze nicht die aktuellste Version von V3, weil die neuste bei mir Probleme mit Pointern hat.
@TPM: So nebenbei, kann man die V_TSNEID neuer Verbindungen beeinflussen, sodass freigewordene IDs neu vergeben werden? |
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 25.02.2009, 21:43 Titel: |
|
|
@Mod hast du einen Link? |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 25.02.2009, 22:30 Titel: |
|
|
es funktioniert;)
Ich musste das Programm FreeBasic 0.20.0b nehmen.
Danke an ThePuppetMaster |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 26.02.2009, 03:32 Titel: |
|
|
MOD hat Folgendes geschrieben: | @TPM: So nebenbei, kann man die V_TSNEID neuer Verbindungen beeinflussen, sodass freigewordene IDs neu vergeben werden? | Wie meinst du das? .. das die TSNE-ID nicht vortlaufend ist, sondern die freigewordenen nummern verwendent? .. so wie es bei V2 der fall war? .. wenn ja, dann nein. das wurde vorsätzlich abgeschafft, das es bei einigen zu problemen kann, die diese nummer als Array-Index verwendet haben. Da man diese nummer nicht als array-index nutzen soll, hab ich das abgeschaft, da sie dafür nitch geeigent sind. Die ID's selbst sind TSNE-Interne nicht thread safe, udn können so bei array-zugriffen oder callback aufruhen zu einem crash des eigenen Progs führen. Um das zu verhindern soll man selbst eine managment funktion bauen, die mit einem Mutex abgesichert ist, und den zugriff auf ein Array oder einer Linked list diese schützt.
@Andy19312
Meinst du, das man es nur mit FB 0.20.0b compilieren kann? Wenn ja, welcher FBC version hast du genutzt, als es nicht funktioniert hat?
Zu den Fehlen. Das war mein missgriff in source. Ich habe ausversehen stat TNewTSNEID ein V_NewTSNEID geschrieben.
Wobei mir aber nicht daran gelegen war dir einen funktionsfehigen source zu leifern, sondern dir verständlich zu machen, was wann, udn vorallem wie funktioniert, was nötig ist, und wie man es anzuwenden hat.
@MOD
Die von dir gepostete version ist ziemlich alt. Sie hat noch keien erweiterung bezüglich der ThreadSize integriert, und kann bei umfangreicheren und vorallem bei grösserem Stackverbrauch zu problemen führen. Hier fehlt bei der erstellung der Threads eine entsprechende angabe über die ThreadStackSize grösse, die in der aktuellen, und einigen vorläuferversionen auf rund 50K gestellt wurde. In der aktuellen DEV Version ist sie auf 150K, da noch einige umfangreichere funktionsaufrufe mit vielen variablen udn maipulativen operationen von Strings immernoch einen Crash verursacht haben.
Leider ist das zwischen win und lineus etwas unterschiedlich. Bei win scheint die angabe nichts zu bewirken, bei linux hingegen schon. Dort beeinflusst sie offensichtlichwin der tat die stackgrösse. Mir ist nicht bekannt, wie gross der von FB angegebene vordefinierte Stack war, da ich dies in den changelogs nicht gefunden habe. Daher muss ich mich hier aufs "ausprobieren" beschränken.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 26.02.2009, 11:29 Titel: |
|
|
@ThePuppetMaster = Das was du auf die Beine gestellt hast, ist ein Wunderwerk. Ich hatte vorher die Version 0.18.5b gehabt.
Naja noch eine Frage:"
Wenn ich
Code: |
#INCLUDE ONCE"TSNE_V2.bi"
DIM taste AS STRING
SUB TSNE_Connect (BYVAL V_TSNEID AS UINTEGER)
DIM T_ZuSenden AS STRING
T_ZuSenden += "HALLO WELT" & CHR(13, 10)
DIM T_GuruCode AS LONG
T_GuruCode = TSNE_Data_Send(V_TSNEID, T_ZuSenden)
IF T_GuruCode <> 0 THEN
PRINT "["; T_GuruCode; "] "; TSNE_GetGURUCode(T_GuruCode)
TSNE_Disconnect(V_TSNEID)
ELSE
PRINT "Versand erfolgreich!"
END IF
END SUB
SUB TSNE_NewData (BYVAL V_TSNEID AS UINTEGER, BYREF V_Data AS STRING)
PRINT V_Data
END SUB
DIM T_TSNEID AS UINTEGER
DIM T_GuruCode AS LONG
T_GuruCode = TSNE_Create_Client(T_TSNEID, "ipadresse", 1234, @TSNE_Disconnect, @TSNE_Connect, @TSNE_NewData)
IF T_GuruCode <> 0 THEN
PRINT "["; T_GuruCode; "] "; TSNE_GetGURUCode(T_GuruCode)
END -1
END IF
PRINT "Erfolgreich!"
SLEEP
|
ausführe, dann bekomme ich wiegesagt nicht "JA HALLO WELT" zurück.
V_Data wird nichts ausgegeben |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 26.02.2009, 15:40 Titel: |
|
|
Code: | T_GuruCode = TSNE_Create_Client(T_TSNEID, "ipadresse", 1234, @TSNE_Disconnect, @TSNE_Connect, @TSNE_NewData) |
"ipadresse"
ist keien IP-Addresse ... das ist ein string mit dem text "ipadresse" .. nicht "mln.ath.cx" oder "192.168.0.1" oder ähnliches
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
Verfasst am: 26.02.2009, 17:14 Titel: |
|
|
Hmm...hab mir schon gedacht, dass es nicht geht.
Ich verwende die ältere Version, weil sie keine Fehler verursacht
(Fehler: TSNE_V3.bi(682) warning 3(1): Passing different pointer types, at parameter 4 of SETSOCKOPT() - hat dir 28398 glaub ich schon gesagt.)
Bezüglich des Stacks hab ich mal was im englischen Manual was gesehen:
Zitat: | The -t compiler option sets the stack size in kilobytes (defaults to 1024 KBytes). |
|
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|