Verbindung mit BNetEx funktioniert nicht richtig
Übersicht

![]() |
SereiyaBetreff: Verbindung mit BNetEx funktioniert nicht richtig |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hoi,
Ich probier seit kurzem mit Bmax ein wenig herum ![]() Server: Code: [AUSKLAPPEN] SuperStrict
Framework brl.basic Import brl.retro Import brl.eventqueue Import MaxGui.Drivers Import Vertex.BNetEx ' ** Globale Variablen ** Global Connected:Int = 0 Global tcp:TTCPStream = New TTCPStream Global Closehidden:Int = 1 Global CloseOpen:Int = 0 Global Port:Short Global ClosehiddenPortfrage:Int = 1 Global CloseopenPortfrage:Int = 0 Global MaxClients:Int Global tmp:TTCPStream ' ######### ' ** Global Window Variablen ** Global CloseWindow:TGadget=CreateWindow("Quit?",270,300,200,100,Null,WINDOW_TITLEBAR) '## Quit Window Global YesButton:TGadget=CreateButton("Yes",10,30,80,25, CloseWindow) Global NoButton:TGadget=CreateButton("No",100,30,80,25, CloseWindow) Global Label1:TGadget=CreateLabel("Are you sure you want to quit?",10,10,200,40,CloseWindow) Global PortWindow:TGadget=CreateWindow("Listen at Port...",3,3,220,130,Null,WINDOW_TITLEBAR)'## Port Window Global OkButton:TGadget=CreateButton("Ok",10,70,80,25, PortWindow) Global PortLabel:TGadget=CreateLabel("Port:",10,10,80,20,PortWindow) Global PortInput:TGadget=CreateTextField(100,10,100,20,PortWindow) Global PlayerLabel:TGadget=CreateLabel("Clientcount:",10,40,80,20,PortWindow) Global PlayerInput:TGadget=CreateTextField(100,40,100,20,PortWindow) ' ######### Global MainWindow:TGadget=CreateWindow("LAN-P.O.S. ---- SERVER ----", 200,200,640,480) '## MAINWINDOW Global FileMenu:TGadget=CreateMenu("File",0,WindowMenu(MainWindow)) '## File CreateMenu "Connect",101,FileMenu '## File --> Verbinden CreateMenu "Quit",102,FileMenu '## File --> Beenden Global ConfigMenu:TGadget=CreateMenu("Configure",0,WindowMenu(MainWindow)) '## Bearbeiten Global InfoMenu:TGadget=CreateMenu("Info",0,WindowMenu(MainWindow)) '## Info CreateMenu "LAN-P.O.S.",301,InfoMenu '## Info --> Über LAN-P.O.S. CreateMenu "Your IP",302,InfoMenu '## Info --> Eigene IP Global PlayerList:TGadget=CreateListBox(10,10,200,380,MainWindow) '## SPIELERLISTE UpdateWindowMenu MainWindow Close tcp.init() Repeat ClosehiddenPortfrage = 0 ShowGadget(PortWindow) Portfrage Until Connected = 1 tcp.Listen:Int(MaxClients:Int=TextFieldText(PlayerInput)) Repeat tcp.Accept() Global tmp:TTCPStream = tcp.Accept() If tmp <> Null Notify "Testclient ist daaaa :P" EndIf WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE Select EventSource() Case MainWindow Closehidden = 0 ShowGadget(CloseWindow) Close End Select Case EVENT_MENUACTION Select EventData() Case 102 Closehidden = 0 ShowGadget(CloseWindow) Close Case 101 Notify "Serverversion. If you want to connect to a Server, use the Client!" Case 301 Notify "LAN-P.O.S. - LAN-Party Organizing System. For further informations: www.gidf.de" Case 302 End Select End Select Forever ' ###################################### FUNCTION CLOSE Function Close() If Closeopen = 0 HideGadget(CloseWindow) Closeopen = 1 EndIf While Closehidden = 0 Select WaitEvent() Case EVENT_WINDOWCLOSE HideGadget(CloseWindow) Closehidden = 1 Case EVENT_GADGETACTION If EventSource() = YesButton Then End If EventSource() = NoButton HideGadget(CloseWindow) Closehidden = 1 End If End Select Wend End Function ' ###################################### FUNCTION PORTFRAGE Function Portfrage() If Closeopen = 0 HideGadget(PortWindow) Closeopen = 1 EndIf While ClosehiddenPortfrage = 0 Select WaitEvent() Case EVENT_WINDOWCLOSE HideGadget(PortWindow) ClosehiddenPortfrage = 1 Case EVENT_GADGETACTION If TextFieldText(PortInput) = Null Notify "You must specify a Port!" ElseIf EventSource() = OkButton tcp.SetLocalPort:Int(Port:Short=TextFieldText(PortInput)) HideGadget(PortWindow) ClosehiddenPortfrage = 1 Connected = 1 End If End Select Wend End Function ' ############ Client: Code: [AUSKLAPPEN] SuperStrict
Framework brl.basic Import brl.retro Import brl.eventqueue Import MaxGui.Drivers Import Vertex.BNetEx ' ** Globale Variablen ** Global Connected:Int = 0 Global CloseOpen:Int = 0 Global CloseopenConnect:Int = 0 Global Closehidden:Int = 1 Global ClosehiddenConnect:Int = 1 Global tcp:TTCPStream = New TTCPStream Global PortL:Short Global PortR:Short Global IP:Int ' ######### ' ** Global Window Variablen ** Global CloseWindow:TGadget=CreateWindow("Quit?",270,300,200,100,Null,WINDOW_TITLEBAR) '## Quit Window Global YesButton:TGadget=CreateButton("Yes",10,30,80,25, CloseWindow) Global NoButton:TGadget=CreateButton("No",100,30,80,25, CloseWindow) Global Label1:TGadget=CreateLabel("Are you sure you want to quit?",10,10,200,40,CloseWindow) Global ConnectWindow:TGadget=CreateWindow("Connect to Server",270,300,470,210) '## Connect Window Global ServerIPLabel:TGadget=CreateLabel("Server-IP:",10,10,80,20,ConnectWindow) Global ServerIPInput:TGadget=CreateTextField(100,10,350,20,ConnectWindow) Global NameLabel:TGadget=CreateLabel("Nickname:",10,40,80,20,ConnectWindow) Global NameInput:TGadget=CreateTextField(100,40,350,20,ConnectWindow) Global PortLabel:TGadget=CreateLabel("Port:",10,70,80,20,ConnectWindow) Global PortInput:TGadget=CreateTextField(100,70,80,20,ConnectWindow) Global ConnectButton:TGadget=CreateButton("Connect",10,100,80,25,ConnectWindow) Global CancelButton:TGadget=CreateButton("Cancel",100,100,80,25,ConnectWindow) ' ######### Global MainWindow:TGadget=CreateWindow("LAN-P.O.S.", 200,200,640,480) '## MAINWINDOW Global FileMenu:TGadget=CreateMenu("File",0,WindowMenu(MainWindow)) '## File CreateMenu "Connect",101,FileMenu '## File --> Verbinden CreateMenu "Quit",102,FileMenu '## File --> Beenden Global ConfigMenu:TGadget=CreateMenu("Configure",0,WindowMenu(MainWindow)) '## Bearbeiten Global InfoMenu:TGadget=CreateMenu("Info",0,WindowMenu(MainWindow)) '## Info CreateMenu "LAN-P.O.S.",301,InfoMenu '## Info --> Über LAN-P.O.S. CreateMenu "Your IP",302,InfoMenu '## Info --> Eigene IP UpdateWindowMenu MainWindow Close Connect tcp.init() If Connected = 0 ClosehiddenConnect = 0 ShowGadget(ConnectWindow) Connect End If Repeat WaitEvent() Select EventID() Case EVENT_WINDOWCLOSE Select EventSource() Case MainWindow Closehidden = 0 ShowGadget(CloseWindow) Close End Select Case EVENT_MENUACTION Select EventData() Case 102 Closehidden = 0 ShowGadget(CloseWindow) Close Case 101 ClosehiddenConnect = 0 ShowGadget(ConnectWindow) Connect Case 301 Notify "LAN-P.O.S. - LAN-Party Organizing System. For further informations: www.gidf.de" Case 302 End Select End Select Forever ' ###################################### FUNCTION CONNECT Function Connect() SetStatusText ConnectWindow, "Status: Wait" If CloseopenConnect = 0 HideGadget(ConnectWindow) CloseopenConnect = 1 EndIf While ClosehiddenConnect = 0 Select WaitEvent() Case EVENT_WINDOWCLOSE If Connected = 0 Closehidden = 0 ShowGadget(CloseWindow) Close EndIf If Connected = 1 HideGadget(ConnectWindow) ClosehiddenConnect = 1 EndIf Case EVENT_GADGETACTION If EventSource() = ConnectButton tcp.SetLocalPort:Int(PortL:Short=TextFieldText(PortInput)) SetStatusText ConnectWindow, "Status: Local Port defined" tcp.Setremoteport:Int(PortR:Short=TextFieldText(PortInput)) SetStatusText ConnectWindow, "Status: Remoteport defined" tcp.setremoteip:Int(IP:Int=TextFieldText(ServerIPInput)) SetStatusText ConnectWindow, "Status: IP defined" SetStatusText ConnectWindow, "Status: Try to connect to server..." tcp.connect:Int() Global tmp:Int = tcp.connect:Int() If tmp = True Then SetStatusText ConnectWindow, "Status: Connected!" End If If EventSource() = CancelButton Closehidden = 0 ShowGadget(CloseWindow) Close EndIf End Select Wend End Function ' ###################################### FUNCTION CLOSE Function Close() If Closeopen = 0 HideGadget(CloseWindow) Closeopen = 1 EndIf While Closehidden = 0 Select WaitEvent() Case EVENT_WINDOWCLOSE HideGadget(CloseWindow) Closehidden = 1 Case EVENT_GADGETACTION If EventSource() = YesButton Then End If EventSource() = NoButton HideGadget(CloseWindow) Closehidden = 1 End If End Select Wend End Function Der Client bleibt beim Versuch zum verbinden stehen, und der Server bemerkt von einer Verbindung gar nix. Wenn mir jemand eine kleine Hilfestellung geben könnte wäre das genial, aktuell steh ich auf dem Schlauch. :/ lg Serry |
||
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
habe die maxgui derzeit nich installiert, aber was mir auffällt, mein server prog würde immer in console laufen ... ansonsten muss du waitevent aus dem weg gehen, da das prog sonst wartet bis du z.b. nen button geklickt hast ^^ | ||
![]() |
Sereiya |
![]() Antworten mit Zitat ![]() |
---|---|---|
<<(Hier stand mal was, was sich aber bereits geregelt hat)>>
Mein Serverprogramm soll laut nem Pro jetzt funktionieren, macht der Client also murks... |
||
![]() |
Hummelpups |
![]() Antworten mit Zitat ![]() |
---|---|---|
tcp.SetLocalPort:Int(PortL:Short=TextFieldText(PortInput))
Das geht doch so garnicht? PortL:Short=TextFieldText(PortInput) tcp.SetLocalPort:Int(PortL) |
||
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus |
![]() |
Mathias-Kwiatkowski |
![]() Antworten mit Zitat ![]() |
---|---|---|
sorry hab mir den code nich angesehn, aber wie gesagt waitevent, heisst das das prog auf ein event wartet, und in dem moment läuft es nich weiter, desweiteren kenn ich nur server programme, die in einer console angezeigt werden, da die routine darin schneller is, wenn man nun aufm server iwi aggieren will, kann man sich ja ein prog schreiben was aufm server interagieren kann, und somit einstellungen ect. machen könnte.
oder direckt mitn client^^ was die einfachste lösung wäre... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group