Frage zu TCP
Übersicht

Donald AguBetreff: Frage zu TCP |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() 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 |
||
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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?? ![]() 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? ![]() ![]() |
||
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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? ![]() |
||
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich hab das beispiel nochmal gelesen (kannte es natürlich schon) ![]() 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 ![]() bitte weiterhelfen! |
||
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. ![]() Gruß - Xaron |
||
Cerberus X - Monkey X Reloaded! |
Donald Agu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() |
||
Donald Agu |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kommt leute, bitte beantwortet mir noch die letzte frage, dann bin ich auch wirklich still. Wirklich, wirklich ![]() Sorry für den doppelpost, aber ich muss das noch wissen. Mir reicht ja auch schon ein simples "ja" als antwort ![]() danke vielmals AGU |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group