Ich habe ein kleines Chat Programm geschrieben, das zu viele Ressourcen verbraucht.
Kann ich das Irgendwie ändern?
Code: Alles auswählen
If InitNetwork() = 0
MessageRequester("Error", "Netzwerk konnte nicht Initialisiert werden!", 0)
End
EndIf
;*********************************************************************
Global Port = 6832
Global ConnectionID
Global SEvent
Global Text$
Global *Buffer = AllocateMemory(1000)
Global name$
;********************************************************************************
Procedure CEV(x)
Repeat
SEvent = NetworkClientEvent(ConnectionID)
If SEvent
Select SEvent
Case 2
ReceiveNetworkData(ConnectionID, *Buffer, 1000)
AddGadgetItem (0, -1, "An "+name$+": "+PeekS(*Buffer))
n+1
SetGadgetState(0, n)
EndSelect
EndIf
ForEver
EndProcedure
Procedure ServerSendung()
If SendNetworkString(ConnectionID, Text$)
CloseNetworkConnection(ConnectionID)
ConnectionID=OpenNetworkConnection("169.254.77.235", Port)
Else
MessageRequester("Error","Naricht konnt nicht gesendet werden")
EndIf
EndProcedure
Procedure Fenster()
Text$=InputRequester("Naricht","Test hier eingeben","Hallo")
ServerSendung()
EndProcedure
Procedure Liste(x)
If OpenWindow(0, 100, 0, 270, 600, "ListViewGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ListViewGadget(0, 10, 10, 250, 580)
AddGadgetItem (0, -1, "Chat Verlauf")
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
EndProcedure
;*****************************************************************************************
Name$=InputRequester("Name","Bitte geben sie ihren namen ein","Herr ...")
ConnectionID=OpenNetworkConnection("169.254.77.235", Port)
Debug ConnectionID
CreateThread(@CEV(),1)
CreateThread(@Liste(),1)
;********************Hauptschleife**********************************************
Repeat
Fenster()
Until Quit = 1
;***************************************************************************************
Result=MessageRequester("PureBasic - Server", "Client beenden?",1 )
If Result=1
If Not CloseNetworkConnection(ConnectionID)
MessageRequester("Server", "Der Client konnte nicht beendet werden",0 )
Else
MessageRequester("Server", "Der Client wurde Beendet",0 )
EndIf
EndIf