Network: Client Problem

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Network: Client Problem

Beitrag von ProgOldie »

Ich mache gerade meine ersten Network-Gehversuche anhand der PB Beispiele. Dazu habe ich das PB-Beispiel etwas abgeändert.

Code: Alles auswählen

;nach PB Examples

EnableExplicit

Enumeration
  #Server
  #ConWin
  #ConText
EndEnumeration

Define.i Port,ConnectionID
Define.s ConnectionAdr

ConnectionAdr="192.168.1.1"
Port = 6832

If OpenWindow(#ConWin,20,20,800,600,"Verbindungsdaten Port="+Str(Port))
  EditorGadget(#ConText, 10, 10, 400, 500)
EndIf

Procedure showConText(Zeile.s)
  AddGadgetItem(#ConText,-1,Zeile)
EndProcedure

showContext("Initialising network")

If InitNetwork() = 0
  MessageRequester("Network","Can't initialize the network !")
  CloseWindow(#ConWin)
  End
EndIf

showConText("Try to open connection to "+ConnectionAdr+"  Port:"+Str(Port))
ConnectionID = OpenNetworkConnection(ConnectionAdr, Port)
If ConnectionID
  showConText("Client connected to server...")
  
  SendNetworkString(ConnectionID, "An hello from a client !!! :-)", #PB_UTF8)
    
  showConText("A string has been sent To the server, please check it before quit...")
  
  CloseNetworkConnection(ConnectionID)
Else
  showConText("Can't find the server (Is it launched ?).")
EndIf
MessageRequester("Alles?","Test")
CloseWindow(#ConWin)
End   
Ohne eingerichteten Server müsste doch
- falls Netzwerk nicht einrichtbar ist, die Fehlermeldung zur Netzwerkinitialisierung oder
- falls doch, zumindestens der Hinweis auf den Öffnungsversuch
kommen.

Es erscheint - auch nach einiger Wartezeit - nur das Fenster.

Fehlerursache?
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Re: Network: Client Problem

Beitrag von ProgOldie »

Nachdem ich die Compileroptions richtig eingestellt habe, geht's jetzt.

Dazu noch eine Frage zu ConnectionAdr, weil ich den Wert nicht kenne bzw. verstanden habe.

Wie finde ich den Wert für ConnectionAdr in folgenden Fällen?
a) Ich will zu Testzwecken zunächst Server und Client auf dem gleichen Rechner laufen lassen (Geht so etwas?)
b) Ich will anschließend Client und Server auf verschiedenen Rechnern im gleichen Netzwerk laufen lassen.

Sorry für die vermutlich elementare Frage.
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Baba_Smurf
Beiträge: 55
Registriert: 01.03.2015 12:05
Wohnort: Saarland / Püttlingen
Kontaktdaten:

Re: Network: Client Problem

Beitrag von Baba_Smurf »

Hi,

also wenn du Server/Client auf deinem eigenen Rechner laufen lassen willst, mußt du dir einen Apache installieren,
ich benutzt dazu Xampp, lässt sich einwandfrei installieren, und verhält sich wie ein Server es muss, ansprechen tust du ihn entweder mit :

Localhost oder der IP-Adresse 127.0.0.1

hoffe du meinst das so.

mfg
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Re: Network: Client Problem

Beitrag von ProgOldie »

Danke für die Antwort, es klappt jetzt mit Serve und Client auf dem gleichen Rechner (Windows 8.1.)

Apache musste dazu nicht installiert werden. Trotzdem habe ich noch drei (Verständnisfragen):
1. Wie bringt man in PB bei OpenNetworkConnection(ConnectionAdr, Port) localhost ein?
OpenNetworkConnection("localhost", Port) doch wohl nicht.
2. Wie finde ich bei zwei Rechnern den einzugebenden Wert für 'ConnectionAdr' beim Client?
3. Wenn ich nun bei zwei Rechnern jeweils senden und empfangen will, muss ich dann auf beiden Rechnern einen Server einrichten? Wenn ja, welche Portnummern kann ich dafür verwenden?
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Baba_Smurf
Beiträge: 55
Registriert: 01.03.2015 12:05
Wohnort: Saarland / Püttlingen
Kontaktdaten:

Re: Network: Client Problem

Beitrag von Baba_Smurf »

zu frage 1:

deine IP für den localhost = 127.0.0.1 sollte funktionieren, sollte so aussehen OpenNetworkConnection("127.0.0.1", Port), nur die genaue Syntax kann ich dir nicht sagen, da ich mich damit noch nicht beschäftigt habe und neu in PB bin, sorry

bei allem anderen fragste besser die die sich damit richtig auskennen.

mfg
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: Network: Client Problem

Beitrag von Andesdaf »

OpenNetworkConnection("localhost", ...) sollte aber auch gehen.
Win11 x64 | PB 6.20
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Re: Network: Client Problem

Beitrag von ProgOldie »

OpenNetworkConnection("localhost", ...) sollte aber auch gehen.
Danke,funktioniert tatsächlich!

Hast du auch 'ne Antwort auf meine restlichen Probleme?

2. Wie finde ich bei zwei Rechnern den einzugebenden Wert für 'ConnectionAdr' beim Client?
3. Wenn ich nun bei zwei Rechnern jeweils senden und empfangen will, muss ich dann auf beiden Rechnern einen Server einrichten? Wenn ja, welche Portnummern kann ich dafür verwenden?
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Baba_Smurf
Beiträge: 55
Registriert: 01.03.2015 12:05
Wohnort: Saarland / Püttlingen
Kontaktdaten:

Re: Network: Client Problem

Beitrag von Baba_Smurf »

zu Frage 2 kann ich dir nicht wirklich helfen.

zu Frage 3:
wenn du zwei rechner übers Netzwerk miteinander verbindest, brauchste auf jeden Fall auf jedem Rechner einen Client, der die Daten sendet, aber brauchst eigentlich nur einen Server, der die Daten verarbeiten, da beide Rechner ja auf den Server zugreifen können.
Aber wie gesagt, habe keinen großartigen plan davon.
Was nutzt du denn als Server ??
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Network: Client Problem

Beitrag von Bisonte »

ProgOldie hat geschrieben:2. Wie finde ich bei zwei Rechnern den einzugebenden Wert für 'ConnectionAdr' beim Client?
Wenn man nur einen Server benutzt ist nur diese Adresse notwendig, da beide Rechner auf diese Adresse zugreifen.
Die Adresse des Servers muss allerdings bekannt sein. alles weitere macht der Server (bzw. muss man ihn machen lassen)
Wenn man z.B. einen Chat machen will, braucht man lediglich eine feste Adresse, auf die jeder Client zugreift.... und der Server
verteilt die Kommunikation auf die Clients.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Re: Network: Client Problem

Beitrag von ProgOldie »

Sorry, das habe ich leider immer noch nicht ganz verstanden.

Konkret habe ich im Netz einen winzigen Win8.1 Mini-Rechner, der kleinere Strecken bewegt wird und Messwerte erfasst. Diese Werte sendet er dann an einen Windows8.1 Laptop. Der Laptop wiederum soll dem Kleinstrechner Steuersignale senden, anhand derer dieser weiß, was zu messen ist. Ich habe also per WLAN einen Datenaustausch in beide Richtungen.

Muss ich dann auf jedem Rechner einen Server und einen Client einrichten?
Und wenn ja, wie finde ich deren wechselseitige Adressen?
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Antworten