2 Clienten in einem Programm.

Für allgemeine Fragen zur Programmierung mit PureBasic.
funkheld
Beiträge: 636
Registriert: 31.12.2009 11:58

2 Clienten in einem Programm.

Beitrag von funkheld »

Hallo, wie kann man hier bitte 2 Clienten am laufen haben.

Code: Alles auswählen

DataBuffer = AllocateMemory(1024)
FillMemory(DataBuffer, 1024)
port=5000
port1=50001
InitNetwork()
Repeat  
  EventID =  WaitWindowEvent(5)
 
  Select EventID
    Case #PB_Event_CloseWindow
      Quit = 1
      
      Select EventGadget()    
        Case #b_ende            
          Quit = 1
          
        Case #b_connect        
          If Not status
            conID = OpenNetworkConnection("127.0.0.1", Port,#PB_Network_TCP,2000)
            If conID
              status = 1
              SetGadgetText(#str_netzwerk,"Connected" + #CR$)
            EndIf
          EndIf
          
        Case #b_disconnect
          If status <> 0
            CloseNetworkConnection(conID)
            status = 0
            SetGadgetText(#str_netzwerk,"Connection closed" + #CR$)
          EndIf 

      EndSelect
  EndSelect
  
  If status   
    cEvent = NetworkClientEvent(conID)
    
    Select cEvent      
      Case #PB_NetworkEvent_Data   
        datatext=""
        FillMemory(DataBuffer, 1024)
        
        Result = ReceiveNetworkData(ConID, DataBuffer, 1024)       
    EndSelect      
  EndIf
  
Until Quit = 1 Or EventID = #PB_Event_CloseWindow

FreeMemory(DataBuffer)
End
Danke.
Gruss
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: 2 Clienten in einem Programm.

Beitrag von mk-soft »

Ich sehe hier keinen Server...

Ein Server ist passiv und stellt die Dienste bereit. Eine Server-Anwendung muss die angemeldeten Clients verwalten. Die Server-
Anwendung kann auch mehrere Ports bereitstellen. Diese müssen auch unterschieden verarbeitet werden.

MultiServer
PB-Hilfe: CreateNetworkServer -> EventServer() -> EventClient()

Ein Client ist aktiv und stellt die Verbindung zum Server her. Die Client-Anwendung kann sich auch auf verschieden Server anmelden.
Dazu muss man mehrfach Verbindungen anlegen.

MultiClient
PB-Hilfe: con1 = OpenNetworkConnection -> NetworkClientEvent(con1); con2 = OpenNetworkConnection -> NetworkClientEvent(con2)

Wiki: https://de.wikipedia.org/wiki/Client-Server-Modell

Der Server sollte auf jeden fall in einem Thread laufen...
Im Client sollte der Empfang der Daten vom Server im Thread laufen.

Werde doch mal ein einfaches Beispiel für Server und client schreiben um Dir die Problematik zu zeigen...
Dauert aber ein wenig Zeit...

P.S. Link zum Beispiel: http://www.purebasic.fr/german/viewtopi ... =8&t=30669
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
funkheld
Beiträge: 636
Registriert: 31.12.2009 11:58

Re: 2 Clienten in einem Programm.

Beitrag von funkheld »

Bringt dass was,wenn man 2 Clienten bei mir am laufen hat in einem Programm, die Daten empfangen und senden zu 2 verschiedenen unabhängigen Servern.
--------------------------------------------
Ein Client ist aktiv und stellt die Verbindung zum Server her. Die Client-Anwendung kann sich auch auf verschieden Server anmelden.
Dazu muss man mehrfach Verbindungen anlegen.
----------------------------------------------
Das heißt mit einem Clienten und einer Portnummer kann ich die 2 Server bedienen und umgekehrt?

Die 2 Server sind am laufen.

Gruss
Benutzeravatar
mk-soft
Beiträge: 3695
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: 2 Clienten in einem Programm.

Beitrag von mk-soft »

Zwei mal 'OpenNetworkConnection' aufrufen.
Somit hast du auch zwei ConnectionID´s
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
funkheld
Beiträge: 636
Registriert: 31.12.2009 11:58

Re: 2 Clienten in einem Programm.

Beitrag von funkheld »

Danke für den Tipp.

Wusste nicht das es Purebasic so einfach wegsteckt mit 2 Clienten.

Gruss
Antworten