tcp tut gesucht
Übersicht

![]() |
GameprogmanBetreff: tcp tut gesucht |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi. Kennt wer ein gutes tutorial zu tcp?
Danke im voraus^^ |
||
www.bandradr.de ! Awesome ! |
David |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
http://de.wikipedia.org/wiki/T...l_Protocol Hier bitte... Ist zwar bestimmt nicht das was du suchst, aber wer sich sowas von unklar ausdrückt... ![]() grüße |
||
![]() |
x-pressive |
![]() Antworten mit Zitat ![]() |
---|---|---|
Leider sind ausführlichere Tutorials zum Thema TCP oder UDP was Blitz angeht (noch) Mangelware ![]() ![]() |
||
• BLITZ SHOWCASE:
PARTICLE CANDY • PARTICLE CANDY FOR iPHONE • SPRITE CANDY • DON'T GET ANGRY! 2-3 • CLICK CLACK XL |
CodeMaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Prinzipiell ist es eigentlich ganz einfach. Ich erkläre mal kurz die Vorgehensweise:
Der Server: Gestartet wird der Server durch "Stream = CreateTCPServer(Port)". Wenn Stream 0 ist, konnte der Server nicht eingerichtet werden. In der Hauptschleife muss ständig überprüft werden, ob neue Clients zum Server verbinden wollen. Das geschieht mit "ClientStream = AcceptTCPStream(Stream)". Sollte ClientStream nicht 0 sein, beinhaltet es den Stream des neuen Users, welcher in einem Array oder als Type gespeichert werden sollte. Anschließend muss für jeden gespeicherten User-Stream überprüft werden, ob aus ihm gelesen werden kann. Das geschieht per "While ReadAvail(TmpStream) ... Wend". Zum Schluss, wenn das Programm beendet werden soll, muss der Server noch geschlossen werden, und zwar per "CloseTCPServer(Stream)". Der Client: Der Client muss die IP und den Port des Servers kennen, damit er sich in den Server einloggen kann - und das passiert direkt am Anfang: "Stream = OpenTCPStream(ServerIP$, ServerPort)". Auch hier gilt: Ist Stream 0, konnte aus irgend einem Grund keine Netzwerkverbindung hergestellt werden. In der Hauptschleife muss nur noch ständig überprüft werden, ob aus dem Stream gelesen werden kann (ist einfacher als beim Server, da der Client ja nur mit dem Server kommuniziert): "While ReadAvail(Stream) ... Wend". Zum Schluss muss, wie beim Server, die Netzwerkverbindung geschlossen werden durch "CloseTCPStream(Stream)". Wenn ich Zeit habe, kann ich gleich zwei Beispielprogramme schreiben, die so ziemlich alles Wichtige enthalten. |
||
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.
Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102 |
CodeMaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
So, hab jetzt mal kurz zwei Beispiele programmiert (Server und Client). Bitte erst den Server starten, dann den Client. Zum Senden einer kleinen Nachricht in den jeweiligen Fenstern die Leertaste drücken.
BlitzBasic: [AUSKLAPPEN] ; SERVER BlitzBasic: [AUSKLAPPEN] ; CLIENT |
||
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.
Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102 |
![]() |
Gameprogman |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das könntest du als tutorial ins internet stellen die leute würden dir das aus den Händen reißen.... ![]() Danke, damit bin ich einen entscheidenden schritt weiter^^ |
||
www.bandradr.de ! Awesome ! |
CodeMaster |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich war vor nem Jahr mal dabei, eine Netzwerklibrary zu schreiben, die sowohl über UDP als auch über TCP senden und empfangen konnte. Der Funktionsreichtum war verhältnismäßig groß (ohne eigentliche Netzwerkfunktionen allein 100kb), außerdem war sie komplett (!!) objektorientiert (nur eine einzige Variable war global) - aber man hätte prinzipiell die komplette Funktionalität der Library auch mit lediglich 4 Befehlen ausnutzen können (Client/Server starten, Daten senden/empfangen).
Habs dann erst mal auf Eis gelegt, da BlitzMax neu erschienen war - inzwischen ist der Code leider unter die Räder gekommen. Allerdings, wenn immer noch entsprechendes Interesse besteht, würde ich mich vielleicht noch mal an die Arbeit machen. |
||
Dies ist ein Text, der an jeden Beitrag von dir angehängt werden kann. Es besteht eine Limit von 500 Buchstaben.
Zuletzt bearbeitet von CodeMaster am Mo Apr 01, Parse error: syntax error, unexpected ';' in htdocs\viewtopic.php on line 102 |
![]() |
DA |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Habe auch mal im Codearchiv ein Beispiel gepostete. Ist zwar nen bissl unübersichtlich aber naja. ![]() https://www.blitzforum.de/viewtopic.php?t=9658 Mfg |
||
Deutscher Blitz Basic Chat |
Weazle25 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
CodeMaster hat Folgendes geschrieben: Allerdings, wenn immer noch entsprechendes Interesse besteht, würde ich mich vielleicht noch mal an die Arbeit machen.
Ein Interesse besteht eigentlich immer da der Multiplayer-Modus bei modernen Spielen immer wichtiger wird. Und da ich auch keine Ahnung von Internet und Netzwerken hab wäre ich auf jeden Fall an Tutorials und Libs interessiert. Gruss Weazle |
||
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe mal eine (wahrscheinlich für euch blöd klingende) Frage:
Ich habe ja zwei BB-Programme. Soweit ich das verstanden habe wird eines bei mir, das andere auf dem Server ausgeführt. Auf meinem Rechner ist das ja kein Problem aber wie lasse ich das 2. Prog auf dem Server laufen? |
||
Mr Hopp |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du meinst wenn du deinen Code selbst testen willst? Dann lass beide Programme laufen und gebe die IP 127.0.0.1 an (das ist die lokale IP) | ||
Zitat:
Wie poste ich falsch? Nachdem ich Google, die FAQ's und die Boardsuche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen, in den falschen Unterforen, mit kreativen Titeln und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du lässt ein Programm als Server laufen, nicht auf dem Webserver ![]() Ist ein deutlicher Unterschied. Server bedeutet hier nur dass einer der Rechner die "Führung" übernimmt. Alle anderen im Netzwerk sind dann Clients, die über den Server gesteuert werden. Was du wohl meintest ist ein Webserver. Den brauchst du aber nicht für dein Multiplayergame. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
Christoph |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie funktionieren dann Spiele, die man über das Inet spielen kann? | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst wiegesagt zwischen mehreren Fällen unterscheiden.
Es gibt Rechner - Internet - Rechner. Das ist das in BB ohne Problem machbare. D.h. Du kannst mit deinem Rechner über Internet mit einem anderen Rechner spielen. Dann gibt es Webserver- Rechner. Hier liegt wirklich Software auf einem Rechner der auch Homepages speichert und so. Da dies aber normalerweise linux-Rechner sind, fällt hier BB flach. Zudem ist so ein Webserver eine recht teure Angelegenheit, da Du ihn extra anmieten musst (Immerhin stellt er rund um die Uhr ne Breitbandverbindung zur Verfügung). |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
CypressArtBetreff: "Server" - Client |
![]() Antworten mit Zitat ![]() |
---|---|---|
hmmm...das würde bedeuten ich müsste den Serverteil auf einem PC laufen haben, welcher via DSL mit dem INternet verbunden ist, und diese IP müsste bei den clients eingetragen werden?
Oder könnte man den "Server"teil auf den CLient übertragen? USer A startet das Programm, das Programm überträgt seine IP an nen Webserver (ev. als Textfile mit der IP) und jeder andere User, der das Programm startet, geht zuerst auf diesen Webserver, liest die IP aus dem File und verbindet sich dann auf diese IP, da diese ja als "PseudoServer" dient....hmm wenn sich der User A aber abmeldet, steht die IP ja nicht mehr zur Verfügung und ein anderer User (Vorteilhaft der nächste, also User B) dient als "Server"...da würde sich eine MySql DB anbieten, in welcher jede IP gespeichert wird, wenn das Programm gestartet wird und beim abmelden oder verbindungsunterbuch, ziehen sich die Clients vom Webserver die nächste IP des pseudo Servers.... oder hab ich da was ganz falsch verstanden? ![]() ![]() |
||
(no comment) -> Google Search Bot!! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group