Netzwerk bind_()

Fragen und Bugreports zur PureBasic 4.0-Beta.
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Netzwerk bind_()

Beitrag von Toshy »

Hallo.

Es geht um folgenden Beitrag:
http://www.purebasic.fr/german/viewtopic.php?t=8089

Da ich das auch in Kürze nutzen wollte und das wohl mit dem PB-Netzwerkfunktionen nicht geht, wollte ich wissen, ob Fred das nicht noch in PB einbauen könnte. Da man "bind_()" nach dem erstellen des sockets, aber wohl vor "WSAAsyncSelect_()" genutzt werden muß, kann man es n icht selber nachträglicher unter nutzung der Socketnummer einbauen. Vielleicht könnte Fred einen zusatzlichen optionalen Parameter beim erstellen des Servers einbauen, dem man den/die IP's/Network-Interface angeben kann.
Da ich noch nicht an dieser Stelle der Programmierung angekommen bin, ist mir selbst noch nicht aufgefallen.
Gruß
Toshy
1. Win10
PB6.1
real
Beiträge: 468
Registriert: 05.10.2004 14:43

Beitrag von real »

Ich bin dafür, dass es als optionaler Parameter aufgenommen wird. :allright:

Grundsätzlich ist es eine feine Sache, dass ein Server auf 0.0.0.0 lauscht, denn dann erreicht man den von außen über mehrere Wege (wenn mehrere Interfaces existieren). Bei manchen Anwendungen möchte man das aber evtl. nicht.
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag von Toshy »

Ich hatte auch erst an einen optionalen Parameter gedacht, aber das wird schwierig sein. Denn auch wenn ich mich mit der Socketprogrammierung kaum auskenne, so ist doch zu erkennen, das "bind_() nach dem Erstellen des Sockets und dem "aktivieren des Servers" eingefügt werden muß. "CreateNetworkServer" macht aber wohl beide dinge "auf einmal", ist für uns User halt einfacher und ich finde das auch ganz gut so. Dadurch läßt sich ein optionaler Parameter aber wohl n icht einfügen, es sei den die ganze CreateNetworkServerfunktion wird geändert.
Wenn es für den "Normaluser" dann irgendwann doch zu unverständlich / kompliziert wird, bringen die FUnktionen von PB nichts mehr und man kann gleich selbst die Sockets Programmieren.

Das war auf jedenfall meine Vermutung.

Toshy
1. Win10
PB6.1
real
Beiträge: 468
Registriert: 05.10.2004 14:43

Beitrag von real »

Wieso soll es mit einem optionalen Parameter schwierig sein. Wenn CreateNetworkServer() aufgerufen wird, prüft der Compiler doch auch erst die Syntax, bevor das Zeugs in Asm umgewandelt wird. Und bei einem optionalen Parameter ist es ganz simpel: ist er gegeben, wird bei bind() für die Struktur sockaddr_in das entsprechende Interface gesetzt, sonst setze halt INADDR_ANY (wie jetzt). Fertig! Übrigens: bind() wird IMMER aufgerufen, um einen socket überhaupt an eine lokale IP zu binden - das macht auch PureBasic, nur halt eben an die lokale IP INADDR_ANY.

Aber mal ganz ehrlich: die Wahrscheinlichkeit, dass wir erhört werden, ist schwindend gering. >_<
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag von Toshy »

Also das wir erhört werden ist gut möglich. Fred baut gerne sinnvolle Dinge ein und ist für vieles offen.

Aber wenn Bind eh IMMER verwendet wird, dann dürfte eine Zusatzfunktion erst recht nicht gehen. Denn auf die Reihenfolge kommt es ja an.
CreateNetworkServer ruft intern ja mehrere Funktionene auf unteranderem erstellt es die Socketnummer und wie du sagst "bind" und dann dieses "..sync..." (was den server dann im grunde erstellt). Eine PB-Funktion macht also mehrere.
Da bind() aber nach der socketerstellung und vor dem ..sync.. auftauchen muß, Create.. dies aber in einem Rutsch durchmacht dürfte es nicht gehen. Nur mit einem optionalen Parameterflag halt.

Das dem so ist vermute ich unter anderem aus dem oben angegebenden Beitrag, denn ansonsten könnte man das ja wirklich einfach mit aufruf der APi nachträglich machen und man bräuchte dann überhaupt keine PB-Funktion dazu.
1. Win10
PB6.1
Benutzeravatar
HeX0R
Beiträge: 2959
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Beitrag von HeX0R »

Toshy hat geschrieben:bla bla bla bla
Nur mit einem optionalen Parameterflag halt.
bla bla bla bla.
Das ist doch exakt, das was real gesagt hat , da steht nix von Zusatzfunktion :roll:
Toshy
Beiträge: 713
Registriert: 22.03.2005 00:29
Computerausstattung: Computer und Strom vorhanden
Wohnort: LK Wolfenbüttel

Beitrag von Toshy »

Hallo.
Da muß ich mich wirklich entschuldigen. Das war mein Fehler. Habe wohl gerade zu viel auf einmal gemacht und aufgefaßt das er meinte das eine "optionale (zusätzliche) Funktion" eingebaut wird. Habe war nicht bemerkt, das er mir zustimmt.
hihi. Muß ich mal wieder zugeben, hier hat der Toshy geirrt.
Aber wenigstens bin ich mir nicht zu schade da zuzugeben ;-)

real, tut mir leid.

Tja, weiß ich nicht wie ich darauf gekommen bin. Hast es ja ganz deutlich geschrieben. Muß ja wirklich was durcheinander gebracht haben.
Na dann wollten wir mal weiter schauen was da nicht so so an Meinunge dazukommt und wir Fred überzeugen können :-)
1. Win10
PB6.1
real
Beiträge: 468
Registriert: 05.10.2004 14:43

Beitrag von real »

@HeXOR: :allright:

@Toshy: :freak: (:wink:)
dussel
Beiträge: 49
Registriert: 15.09.2004 12:52
Wohnort: Bei Frankfurt/Main

Beitrag von dussel »

Die Funktion CreateNetworkServer an eine oder mehrere IP-Adressen zu binden würde ich ebenfalls SEHR(!) begrüßen.
Benutzeravatar
Falko
Admin
Beiträge: 3531
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.0
Kontaktdaten:

Beitrag von Falko »

>>Also das wir erhört werden ist gut möglich. Fred baut gerne sinnvolle Dinge ein und ist für vieles offen.

Wer weiß, vielleicht liest Freak dieses irgendwann einmal in diesem Jahr :mrgreen:

Bleibt euch also nichts anderes übrig, dieses hier selbst in's
englische Forum zu posten, damit Fred das auch mitbekommt. :allright:

Gruß Falko
Bild
Win10 Pro 64-Bit, PB_5.4,GFA-WinDOS, Powerbasic9.05-Windows, NSBasic/CE, NSBasic/Desktop, NSBasic4APP, EmergenceBasic
Gesperrt