Code: Alles auswählen
Enumeration
#Window_0
EndEnumeration
Enumeration
#Frame3D_0
#Button_0
#Button_1
#Text_0
#ClientList
#Button_2
EndEnumeration
Enumeration
#StatusBar_1
EndEnumeration
Procedure Open_Window_0()
If OpenWindow(#Window_0, 360, 120, 227, 321, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar , "Server")
If CreateStatusBar(#StatusBar_1, WindowID())
AddStatusBarField(115)
AddStatusBarField(115)
StatusBarText(#StatusBar_1, 0, "Willkommen")
StatusBarText(#StatusBar_1, 1, "Status", #PB_StatusBar_Raised)
EndIf
If CreateGadgetList(WindowID())
Frame3DGadget(#Frame3D_0, 5, 5, 215, 80, "Server Optionen")
ButtonGadget(#Button_0, 15, 25, 95, 25, "Server Starten")
ButtonGadget(#Button_1, 115, 25, 95, 25, "Server Beenden")
TextGadget(#Text_0, 15, 95, 60, 15, "Client Liste")
ListViewGadget(#ClientList, 10, 115, 200, 170)
ButtonGadget(#Button_2, 15, 55, 95, 25, "Server Information")
EndIf
EndIf
EndProcedure
;LoadImage(0,"C:\Programme\PureBasic\VOIP\false.ico")
;LoadImage(1,"C:\Programme\PureBasic\VOIP\true.ico")
Open_Window_0()
;StatusBarIcon(0,1,UseImage(0))
start = 1
Repeat
Event = WaitWindowEvent()
If Event = #PB_EventGadget
GadgetID = EventGadgetID()
If GadgetID = #Button_0 ;Server Starten
If InitNetwork() <> 0
StatusBarText(0,0,"Starten...")
If CreateNetworkServer(6832)
StatusBarText(0,0,"Gestartet")
;StatusBarIcon(0,1,UseImage(1))
Else
StatusBarText(0,0,"Fehler 2")
EndIf
Else
StatusBarText(0,0,"Fehler 1")
;StatusBarIcon(0,1,UseImage(0))
EndIf
start = 0
ElseIf GadgetID = #Button_1 ;Server Beenden
StatusBarText(0,0,"Beenden...")
CloseNetworkServer()
StatusBarText(0,0,"Beendet")
;StatusBarIcon(0,1,UseImage(0))
start = 1
ElseIf GadgetID = #Button_2 ;Server Information
If InitNetwork() = 0
MessageRequester("Server Information","Host Name:"+Chr(9)+"N/A"+Chr(9)+Chr(13)+"IP Adresse:"+Chr(9)+"N/A"+Chr(9)+Chr(13)+"Port:"+Chr(9)+Chr(9)+"N/A"+Chr(9),0|64)
Else
ExamineIPAddresses()
Cu_Ip.s = IPString(NextIPAddress())
Cu_Host.s = Hostname()
CuPort = 6832
MessageRequester("Server Information","Host Name:"+Chr(9)+Cu_Host.s+Chr(9)+Chr(13)+"IP Adresse:"+Chr(9)+Cu_Ip.s+Chr(9)+Chr(13)+"Port:"+Chr(9)+Chr(9)+Str(CuPort)+Chr(9),0|64)
EndIf
ElseIf GadgetID = #ClientList ;Client Liste
Debug "GadgetID: #ClientList"
EndIf
EndIf
If start = 0
SEvent.l = NetworkServerEvent()
If SEvent
ClientID = NetworkClientID()
Select SEvent
Case 1 ;Client verbunden
AddGadgetItem(#ClientList,0,Str(ClientID))
StatusBarText(0,0,Str(CountGadgetItems(#ClientList)))
Case 4 ;Client nicht verbunden
For i = 0 To CountGadgetItems(#ClientList)
If GetGadgetItemText(#ClientList,i,"") = Str(ClientID)
RemoveGadgetItem(#ClientList,1)
EndIf
Next i
StatusBarText(0,0,Str(CountGadgetItems(#ClientList)))
EndSelect
EndIf
EndIf
Until Event = #PB_EventCloseWindow
End