Seite 1 von 1

Client funktionier im Windows-Fenster nicht, warum ?

Verfasst: 22.10.2013 23:15
von funkheld
Hallo, guten Tag.
Ich finde den Fehler nicht , beim Client im Windows.
Es werden die Daten nicht gesendet, es stürzt ab.
Kann man da mal bitte Prüfen ?

Danke.
Gruss

Code: Alles auswählen

Global daten.s, laenge.l,ConnectionID.l

Declare send_daten()

*sendarray = AllocateMemory(100)
FillMemory(*sendarray,100)
 
 Enumeration
   #Window_0
   #button_0
   #editor_0
 EndEnumeration

InitNetwork()

OpenWindow(#Window_0, 0, 0, 500, 500, "Screen", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)

ButtonGadget(#button_0, 10,10, 80, 25, "send")
EditorGadget(#editor_0, 110, 10, 200,300)

Port = 42001
ConnectionID = OpenNetworkConnection("192.168.2.101", Port)  

Repeat
  Event = WaitWindowEvent(5)
  
  Select Event
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      
      If EventGadget = #Button_0
         send_daten()
      EndIf
    
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseNetworkConnection(ConnectionID)
        FreeMemory(*sendarray)
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect

ForEver

Procedure send_daten()
  If ConnectionID
    daten="broadcast hello"   
    laenge=Len(daten)
    PokeB(*sendarray+3,laenge)
    PokeS(*sendarray+4,daten)
    SendNetworkData(ConnectionID, *sendarray, 4+laenge)
  EndIf
EndProcedure
Hier im normalen Modus werden die Daten gesendet:
Warum funktioniert es oben nicht ?

Code: Alles auswählen

Global daten.s , laenge.l

OpenConsole()

*sendarray = AllocateMemory(100)
FillMemory(*sendarray,100)
 
If InitNetwork() = 0
  PrintN("Error, kein Netzwerk vorhanden")
  End
EndIf

Port = 42001

ConnectionID = OpenNetworkConnection("192.168.2.101", Port)

If ConnectionID
  PrintN("Client verbunden...")
  
  daten="broadcast hello"   
  laenge=Len(daten)
  PokeB(*sendarray+3,laenge)
  PokeS(*sendarray+4,daten)
  SendNetworkData(ConnectionID, *sendarray, 4+laenge)
  
  CloseNetworkConnection(ConnectionID)
  FreeMemory(*mem)
Else
  PrintN("Kein Server.")
EndIf

Input()
End   

Re: Client funktionier im Windows-Fenster nicht, warum ?

Verfasst: 22.10.2013 23:46
von STARGÅTE
Ich vermute mal weil *sendarray nicht global ist.
Somit schreibst du unten in nicht definierten Speicher!

Re: Client funktionier im Windows-Fenster nicht, warum ?

Verfasst: 23.10.2013 09:22
von funkheld
Jup, danke für die Hilfe.

Gruss