 |
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 |
arduno
Anmeldungsdatum: 12.05.2011 Beiträge: 252
|
Verfasst am: 29.02.2012, 13:11 Titel: Client vereinfachen...geht das so? |
|
|
Ich habe jetzt mal die einfache Version genommen für den Clienten.
Ich habe Verbindung zum TCP-Server.
Code: |
#Include once "TSNE_V3.bi"
Dim G_Client_TSNEID as UInteger
Sub TSNE_Disconnected(ByVal V_TSNEID as UInteger)
Print "[Disconnected] TSNEID: "; V_TSNEID
End Sub
Sub TSNE_Connected(ByVal V_TSNEID as UInteger)
Print "[Connected] TSNEID: "; V_TSNEID
End Sub
Sub TSNE_NewData(ByVal V_TSNEID as UInteger, ByRef V_Data as String)
Print "[NewData] TSNEID: "; V_TSNEID; " Datenlänge: "; Len(V_Data)
End Sub
Dim RV as Integer
RV = TSNE_Create_Client(G_Client_TSNEID, "127.0.0.1",1435, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData)
If RV <> TSNE_Const_NoError Then
Print "[FEHLER] " & TSNE_GetGURUCode(RV)
End -1
End If
TSNE_WaitClose(G_Client_TSNEID)
End 0
Print "ende...."
Sleep
|
Wie kann ich jetzt einen Server ähnlich klein aufbauen, der Verbindung zum Zuis-Programm hat , welches als Client tätig ist?
Danke.
Gruss |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 29.02.2012, 14:17 Titel: |
|
|
So in etwa (ungetestet) könnte man das mit der neuen TSNE_V3.5 machen. (Version mit CallbackPtr)
Code: |
'##############################################################################################################
#include once "TSNE_V3.bi"
'##############################################################################################################
Type Client_Type
V_IPA as String
V_Data as String
End Type
'##############################################################################################################
Sub TSNE_Disconnected(ByVal V_TSNEID as UInteger, ByVal V_CallBackPtr as Any Ptr)
If V_CallBackPtr = 0 Then Exit Sub
Print "[CLIENT] Disconnected: " & Cast(Client_Type Ptr, V_CallBackPtr)->V_IPA
DeAllocate(V_CallBackPtr)
End Sub
'##############################################################################################################
Sub TSNE_Connected(ByVal V_TSNEID as UInteger, ByVal V_CallBackPtr as Any Ptr)
If V_CallBackPtr = 0 Then Exit Sub
Print "[CLIENT] Connected: " & Cast(Client_Type Ptr, V_CallBackPtr)->V_IPA
End Sub
'##############################################################################################################
Sub TSNE_NewConnection(ByVal V_TSNEID as UInteger, ByVal V_RequestID as Socket, ByVal V_IPA as String)
Dim TNewTSNEID as UInteger
Dim TReturnIPA as String
Dim TClient as Client_Type = CAllocate(SizeOf(Client_Type))
*TClient->V_IPA = V_IPA
Dim RV as Integer = TSNE_Create_Accept(V_RequestID, TNewTSNEID, TReturnIPA, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData, Cast(Any Ptr, @TClient))
If RV <> TSNE_Const_NoError Then
DeAllocate(TClient)
Print "[CLIENT] [FEHLER] " & TSNE_GetGURUCode(RV)
Exit Sub
End If
Print "[CLIENT] New Connect: " & V_IPA
End Sub
'##############################################################################################################
Sub TSNE_NewData(ByVal V_TSNEID as UInteger, ByRef V_Data as String, ByVal V_CallBackPtr as Any Ptr)
If V_CallBackPtr = 0 Then Exit Sub
With *Cast(Client_Type Ptr, V_CallBackPtr)
.V_Data += V_Data
Print "[CLIENT] DATA: " & .V_IPA & " DataLen:"; Len(.V_Data)
.V_Data = ""
End With
End Sub
'##############################################################################################################
Dim TServerID as UInteger
Dim RV as Integer = TSNE_Create_Server(TServerID, 1236, 10, @TSNE_NewConnection)
If RV <> TSNE_Const_NoError Then
Print "[SERVER] [FEHLER] " & TSNE_GetGURUCode(RV)
End 0
End if
Print "[SERVER] OK!"
Do
Sleep 10, 1
Loop until InKey() = Chr(27)
RV = TSNE_Disconnect(TServerID)
TSNE_WaitClose(TServerID)
End 0
|
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
arduno
Anmeldungsdatum: 12.05.2011 Beiträge: 252
|
Verfasst am: 29.02.2012, 15:19 Titel: |
|
|
Jup, danke.
Hier kommt eine Fehlermeldung :
zusi-server.bas(35) error 25: Invalid data types in 'Dim TClient as Client_Type = CAllocate(SizeOf(Client_Type))'
zusi-server.bas(36) error 29: Expected pointer, before '->' in '*TClient->V_IPA = V_IPA'
zusi-server.bas(37) error 41: Variable not declared, TSNE_NewData in 'Dim RV as Integer = TSNE_Create_Accept(V_RequestID, TNewTSNEID, TReturnIPA, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData, Cast(Any Ptr, @TClient))'
zusi-server.bas(37) error 55: Type mismatch, at parameter 7 (R_RemoteShownServerIPA) of TSNE_CREATE_ACCEPT() in 'Dim RV as Integer = TSNE_Create_Accept(V_RequestID, TNewTSNEID, TReturnIPA, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData, Cast(Any Ptr, @TClient))'
zusi-server.bas(39) error 55: Type mismatch, at parameter 1 of DEALLOCATE() in 'DeAllocate(TClient)'
Der Bereich :
Code: |
Dim TClient as Client_Type = CAllocate(SizeOf(Client_Type))
*TClient->V_IPA = V_IPA
Dim RV as Integer = TSNE_Create_Accept(V_RequestID, TNewTSNEID, TReturnIPA, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData, Cast(Any Ptr, @TClient))
If RV <> TSNE_Const_NoError Then
DeAllocate(TClient)
Print "[CLIENT] [FEHLER] " & TSNE_GetGURUCode(RV)
Exit Sub
End If
|
Gruss |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 29.02.2012, 15:24 Titel: |
|
|
arduno hat Folgendes geschrieben: | zusi-server.bas(35) error 25: Invalid data types in 'Dim TClient as Client_Type = CAllocate(SizeOf(Client_Type))' |
Invalid deswegen, weil nach Dim TClient as Client_Type noch ein PTR gehört
arduno hat Folgendes geschrieben: | zusi-server.bas(36) error 29: Expected pointer, before '->' in '*TClient->V_IPA = V_IPA' |
Eine folge des fehlenden PTR's
arduno hat Folgendes geschrieben: | zusi-server.bas(37) error 41: Variable not declared, TSNE_NewData in 'Dim RV as Integer = TSNE_Create_Accept(V_RequestID, TNewTSNEID, TReturnIPA, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData, Cast(Any Ptr, @TClient))' |
Die TSNE_NewData Sub muss über die TSNE_NewConnection Sub
arduno hat Folgendes geschrieben: | zusi-server.bas(37) error 55: Type mismatch, at parameter 7 (R_RemoteShownServerIPA) of TSNE_CREATE_ACCEPT() in 'Dim RV as Integer = TSNE_Create_Accept(V_RequestID, TNewTSNEID, TReturnIPA, @TSNE_Disconnected, @TSNE_Connected, @TSNE_NewData, Cast(Any Ptr, @TClient))'
zusi-server.bas(39) error 55: Type mismatch, at parameter 1 of DEALLOCATE() in 'DeAllocate(TClient)' |
Du hast vermutlich nicht die aktuelle TSNE_V3.5 sondern eine vorherige.
Lade dir die aktuelle herunter, und packe sie in das verzeichniss mit rein, wo auch dieses app liegt.
Die neue TSNE_V3.5 ist erweitert und benötigt in den Sub's einen weiteren Parameter, welcher von der V3.4 und kleiner noch nicht unterstützt wurde.
MfG
TPM _________________ [ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ] |
|
Nach oben |
|
 |
arduno
Anmeldungsdatum: 12.05.2011 Beiträge: 252
|
Verfasst am: 29.02.2012, 15:52 Titel: |
|
|
Jup, danke.
Ich habe die 3.5 vom 15.12
Gruss |
|
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.
|
|