Server Startet nicht
Verfasst: 21.07.2005 20:26
Wenn ich mit diesem Code den Server starte und beende dann funktioniert alles. Starte ich den Server doppelt so sollte er mir eine fehlemeldung raus geben (In der Statusleiste feld1), das funktioniert auch wenn ich allerdings dann den Server beende (oder auch mehrmals beende) dann kann ich ihn nicht neu starten und ich muss das Programm erst beenden bevor ich den server starten kann. Weis jemand wie man das beheben kann?
Danke Mark S.
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