Frage zu TCP

Übersicht BlitzBasic Beginners-Corner

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.

 

Donald Agu

Betreff: Frage zu TCP

BeitragMi, Nov 08, 2006 19:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay, der dritte Netzwerk-Anlauf innerhalb von 2 Wochen, diesmal ist TCP an der Reihe (nachdem ich ja gehört hab, wie unsicher udp ist und dergleichen):

MUSS ich, um eine TCP-Verbindung zwischen 2 PCs über Internet herzustellen, eine I-Net-Adresse als Server eine Internetseite angeben? Oder funktioniert es auch ohne? Oder bin ich total auf dem Holzweg?

Ich hab ja gelesen, dass der Befehl Createtcpserver nur nach einem port verlangt. Wenn ich da jetzt beispielsweise 8000 angeb, kann ich dann einfach an 2 PCs über I-Net mit
Code: [AUSKLAPPEN]
 stream = opentcpstream(ip$,8000)

kommunizieren, wenn ich ip$ zuvor als meine eigene dotted ip definiert hab?

Funktionieren dann die ganzen write/read-Befehle oder geht es nicht ohne Internetseite?
Geschwindigkeit spielt in meinem Fall keine Rolle (außer die Daten bräuchten länger als 3 Sekunden um anzukommen Laughing )

Wie läuft das ab? In den Tutorials ist der Teil von TCP, der mich interessiert, ja leider immer nur mehr als knapp beschrieben, sodass ich hier fragen muss...

bin dankbar für jede Hilfe

AGU

Blitzcoder

Newsposter

BeitragMi, Nov 08, 2006 19:54
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, so kannst du kommunizieren. Du musst natürlich mit accepttcpstream die Verbindung annehmen.

Zitat:
oder geht es nicht ohne Internetseite?

Versteh ich nicht. Du kannst mit writeline,writeint,readstring etc. Nachrichten schicken und empfangen.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

Donald Agu

BeitragMi, Nov 08, 2006 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Und wie geht das dann?

Muss ich als IP immer meine eigene angeben? Und wie kann ich als fremder PC dann eine Verbindung herstellen, wenn ich gar keine IP hab, die ich angeben kann? Oder wird ein signal an alle pcs der welt an den gewählten port gesendet, und wer halt da gerade auf ein signal wartet, mit dem verbindet man sich dann?? Embarassed ich kann mir das net richtig vorstellen...
ich weiß zwar, dass jede nachricht, die in den stream geschrieben wird, sofort verschickt wird, aber AN WEN??

Deshalb versteh ich nicht, wie eine TCP-Verbindung funktionieren soll, OHNE dass man sich auf eine feste Kommunikationsplattform bezieht, wie etwa eine Internetadresse.

Bei UDP kann ich ja die IP mit angeben, aber wie läuft das bei TCP?
Question Question

Xaron

BeitragMi, Nov 08, 2006 20:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei TCP läuft das ähnlich, nur dass Du Dich halt darauf verlassen kannst, dass die Pakete ankommen. Problematisch ist nur, dass BB halt darauf wartet - ein blocking call also.

Du brauchst natürlich auch die IP der Gegenseite, das ist das gleiche wie bei UDP.

http://de.wikipedia.org/wiki/UDP
http://de.wikipedia.org/wiki/T...l_Protocol

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

Donald Agu

BeitragMi, Nov 08, 2006 21:08
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, aber es gibt doch keinen befehl wie sendudpmsg, in dem ich die ip der gegenseite angeben kann.

Könntet ihr mir also bitte ganz ganz simpel zeigen, wie man es macht? Very Happy

Xaron

BeitragMi, Nov 08, 2006 21:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst halt einen TCP Server erstellen und dann mit OpenTCPStream auf diesen Server connecten:

http://www.blitzbasic.com/b3dd...ref=2d_a-z

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

Donald Agu

BeitragMi, Nov 08, 2006 21:43
Antworten mit Zitat
Benutzer-Profile anzeigen
ich hab das beispiel nochmal gelesen (kannte es natürlich schon) Smile , ich hab das zwar verstanden, aber was mach ich, wenn ich an beiden PCs ein und das gleiche Programm haben will (im Beispiel sind es ja 2 verschiedene)?

Dann brauch ich ja so was wie ne Internetadresse, die ich als server verwenden kann, oder? Darf ich da jede Adresse nach belieben verwenden und ist das sinnvoll (wenn ich z.B. web.de nehm, nur als Beispiel)?

Oder kann man das sonstwie umgehen?

danke schonmal, aber ich bin noch nicht ganz durchgestiegen Wink
bitte weiterhelfen!

Xaron

BeitragMi, Nov 08, 2006 21:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf dem Server machst Du ein CreateTCPServer(Port). Hier brauchst Du nur den Port, denn der Server kennt ja seine eigene IP. Dann machst Du im Client-Programm halt ein OpenTCPStream mit der IP des Servers und dem Port. Die IP ist 127.0.0.1 wenn Du beides bei Dir lokal laufen lässt.

edit: Du hast halt irgendwo einen Server und dann viele Clients. Das ist das ganze Geheimnis. Für eine direkte Verbindung zwischen zwei Rechnern ist halt der eine der Server und der andere der Client. Der Client ist immer derjenige, der den Server "anwählt", während der Server (also bei Dir der erste PC) nur lauscht.

edit2: Die IP des Servers musst Du dazu natürlich kennen. Wink

Gruß - Xaron
Cerberus X - Monkey X Reloaded!
 

Donald Agu

BeitragDo, Nov 09, 2006 18:42
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, das hab ich soweit verstanden.

Ist es dann so, dass vom "Server-PC" gesendete Daten normalerweise immer an alle Clients, die mit ihm kommunizieren, gesendet werden? Wäre dann ja eigentlich logisch, oder etwa nicht?

Wenn ich diese Vermutung noch abgesegnet bekomme, hab ich keine weiteren Fragen mehr, ich versprechs Wink
 

Donald Agu

BeitragDo, Nov 09, 2006 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Kommt leute, bitte beantwortet mir noch die letzte frage, dann bin ich auch wirklich still. Wirklich, wirklich Crying or Very sad

Sorry für den doppelpost, aber ich muss das noch wissen.
Mir reicht ja auch schon ein simples "ja" als antwort Smile

danke vielmals

AGU
 

Dreamora

BeitragDo, Nov 09, 2006 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei einem TCP Stream gehen die daten nur an den anderen User. Es gibt keine "alle anderen", da zu jedem User ein eigener TCP Stream besteht.

~GESCHLOSSEN~

Doppel- und Trippelposts werden nicht geduldet und Ungeduld ist keine sinnvolle Tugend für Programmierer.
Dreamora
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten.


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group