Beispiel einer ServerEventloop in einer Userlib:
die Userlib:
Code: Alles auswählen
;##### Userlib
EnableExplicit
Prototype.i servereventprozeduren(Client.i)
Structure proc_liste
ServerID.i
ServerProc.servereventprozeduren[3]
EndStructure
ProcedureDLL.i ServerEventLoop(*procs.proc_liste)
Protected Client.i, SEvent.i
If *procs\ServerID
SEvent = NetworkServerEvent()
If SEvent
Client = EventClient()
Select SEvent
Case #PB_NetworkEvent_Connect
*procs\ServerProc[0](Client)
Case #PB_NetworkEvent_Disconnect
*procs\ServerProc[1](Client)
Case #PB_NetworkEvent_Data
*procs\ServerProc[2](Client)
;##### File lass ich mal weg (geht über Data)
Default
;##### Falls als Threadaufruf Delay(1) und in Schleife
EndSelect
EndIf
EndIf
EndProcedure
Code: Alles auswählen
;##### Aufruf der Userlib
EnableExplicit
Prototype.i servereventprozeduren(Client.i)
Structure proc_liste
ServerID.i
ServerProc.servereventprozeduren[4]
EndStructure
Define SV_Procs.proc_liste
Define Event.i, ServerID.i
Procedure.i SV_Data(Client.i)
Debug "Empfange Daten"
EndProcedure
Procedure.i SV_Connect(Client.i)
Debug "Client kommt"
EndProcedure
Procedure.i SV_DisConnect(Client.i)
Debug "Client geht"
EndProcedure
InitNetwork()
ServerID = CreateNetworkServer(#PB_Any,6686)
If ServerID
With SV_Procs
\ServerID = ServerID
\ServerProc[0] = @SV_Connect()
\ServerProc[1] = @SV_DisConnect()
\ServerProc[2] = @SV_Data()
EndWith
OpenWindow(0,0,0,100,100,"Test")
Repeat
Event = WaitWindowEvent(20)
ServerEventLoop(SV_Procs)
Until Event = #PB_Event_CloseWindow
EndIf
Code: Alles auswählen
InitNetwork()
Con = OpenNetworkConnection("localhost",6686)
If Con
CloseNetworkConnection(Con)
EndIf
(nicht in Userlib/Dll) erstellt werden so zu übergeben.
Ist es denn hier notwendig ? Da es sich ja am Ende um eine Userlib handelt.PS: auch hier sollte man aber nach möglichkeit Import verwenden
P.S.: Mit Tailbite 1.4.7 compiliert und dieses Beispiel funktioniert, daher jetzt meine Frage.
Oder hab ich gar irgendetwas wichtiges übersehen ?