Seite 2 von 2

Re: Netzwerk GetClientPort(ClientID)

Verfasst: 11.05.2013 09:12
von es_91
Ich möchte noch einmal auf das
ursprüngliche Thema zurückkommen. Warum zeigt GetClientPort() einen
anderen als den für die Verbindung gewählten Port an? Das war des
Thread-Erstellers erste Frage.

Server:

Code: Alles auswählen

initnetwork()
createnetworkserver(#pb_any, 6060)
repeat
  select networkserverevent()
    case #pb_networkevent_connect
        debug getclientport(eventclient())
        sendnetworkstring(eventclient(), "Hallo")
  endselect
forever
Klient:

Code: Alles auswählen

initnetwork()
connection = opennetworkconnection("127.0.0.1", 6060)
repeat
until networkclientevent(connection) = #pb_networkevent_data

Re: Netzwerk GetClientPort(ClientID)

Verfasst: 11.05.2013 19:32
von Sicro
Hallo H.Brill,

bezüglich dem Problem des unvollständigem Senden/Empfangen von Daten wurde schon mehrfach diskutiert. Lies dir mal folgenden Thread komplett durch: noch ein daten senden problem

Re: Netzwerk GetClientPort(ClientID)

Verfasst: 14.05.2013 15:28
von es_91
Ich habe jetzt auf die ursprüngliche Frage im englischen Forum eine Antwort erhalten. Es heisst dort, es gäbe im TCP/IP Protokoll immer zwei Ports, einen auf der Klient- und einen auf der Serverseite und während PureBasic es erlaubt, den Serverport zu setzen, ist der klientseitige Port ein automatisch und wahrscheinlich zufällig zugewiesener, der nicht verändert werden kann.

Mfg,

es_91.

Re: Netzwerk GetClientPort(ClientID)

Verfasst: 14.05.2013 17:19
von Kevin
es_91 hat geschrieben:... während PureBasic es erlaubt, den Serverport zu setzen, ist der klientseitige Port ein automatisch und wahrscheinlich zufällig zugewiesener, der nicht verändert werden kann ....
seit 5.1 gibt es einen optionalen LocalPort Parameter:

OpenNetworkConnection(ServerName$, Port [, Mode [, TimeOut [, LocalIP$ [, LocalPort]]]])
Help hat geschrieben:LokalerPort (optional) Der lokale Port, an den die Verbindung gebunden werden soll. Standardmäßig wird automatisch ein zufälliger lokaler Port für die neue Verbindung gewählt, aber er kann mit diesem Parameter überschrieben werden.
mfg kevin

Re: Netzwerk GetClientPort(ClientID)

Verfasst: 14.05.2013 17:19
von NicTheQuick
Bei einer direkten Verbindungen zwischen zwei Rechnern über ein einfaches Switch oder Hub, sind üblicherweise die Ports von Server und Client gleich. Aber steckt man z.B. hinter einem Router, kann der jeden eingehenden Datenstrom über einen Port A zu einem beliebigen Port B leiten und umgekehrt. Zum Beispiel kann ich hier meinen lokalen Webserver auf dem Rechner auf Port 80 laufen lassen, aber im Internet über meine DynDNS-Adresse kommt man eben über Port 1234 rein, weil der Router das so macht.