Problem mit mehreren Clients
Übersicht

![]() |
GearTechDEehemals 'KillerJo96'Betreff: Problem mit mehreren Clients |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
ich hatte mich zwar vor einiger Zeit entschlossen, den Server über Visual Basic zu machen, doch das konnte ich genau so wenig umsetzen ![]() Also hab ich mich umentschlossen doch einen Server mit Blitz3D zu programmieren. Bis jetzt hat auch alles geklappt. Der Server startet, EIN Client kann joinen und Nachrichten austauschen. Jedoch kann immer nur ein Client joinen. Warum? Wie behebe ich das? Ich hatte schonmal einen Thread wie diesen aufgemacht, jedoch guckt dort leider keiner mehr rein. Ich hoffe jeder versteht mein Problem. Danke schon im Voraus. |
||
Mit freundlichen Grüßen: GearTechDE |
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst halt die Clienthandles in einem Dim Feld oder Type (besser) speichern.
Danach gehst du alle Einträge durch, und checkst, ob neue Nachrichten da sind. Arbeitest du mit TCP oder UDP? |
||
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oh tut mir leid, ich habe vergessen zu sagen dass ich TCP benutze...
Hmm mit einem Type speichern.. Könntest du vielleicht ein kleines Beispiel posten? Ich weiß nämlich im Moment nicht welchen Befehl ich sozusagen Typisieren soll xD. Also wie ich die "Handles" in den Type kriege. Ein Beispiel wäre wirklich sehr nett. Es muss auch nur der Teil mit den Handles sein und wie man dann die in den Type macht. der rest mit CreateTCPServer muss nicht sein xD Danke. |
||
Mit freundlichen Grüßen: GearTechDE |
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
Villeicht wäre es auch Hilfreich deinen Bisherigen Code zu sehen.
Am besten legt du eine fest definierte Anzahl von Clients fest, die Maximal gleichzeitig mit dem Server verbunden sein können (Bspw.: 16). Dann Erstellst du ein Type ![]() BlitzBasic: [AUSKLAPPEN] Type TClient Somit hast du eine Liste von 16 "TClient"s(0-15). Somit kannst du jetzt, wenn sich ein neuer Client anmeldet, prüfen ob noch ein Speicherplatz in "Clients" nicht Null ![]() mfg ToeB |
||
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt! |
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
also das mit den MaxClients lasse ich erstmal da ich:
1.) So viele leute auf den server lassen will wie nur möglich 2.) ich mich mit arrays nich so gut auskenne und keine tutorials finde ![]() Jetzt noch mal für´s Verständnis: Ich erstelle ein Type (Das krieg ich noch hin xD) Dann gib ich dem Type 3 Felder. Field Name Field IP Field Stream Wozu muss ich die IP haben? Wenn ich den Stream habe reicht das doch oder? Naja und dann mach ichs so oder? Code: [AUSKLAPPEN] Function NewClient() C.TClient = New TClient C\Name = Name$ ;wurde vorher per string in diese variable geliefert per readstring C\IP = ? ;wozu die IP? C\stream = AcceptTCPStream(Server) ;Ist das richtig? End Function Ist das so richtig? Ich glaube ich habe das Prinzip nicht so ganz verstanden. |
||
Mit freundlichen Grüßen: GearTechDE |
![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
ok,
hier ein Beispiel mit Type (für theoretisch beliebig viele Clients) (von der Hilfe abgeleitet) Server: BlitzBasic: [AUSKLAPPEN] ;Server Client: BlitzBasic: [AUSKLAPPEN] ; Client Entscheidend ist halt nur, dass du pro Client einen Type Eintrag hast, und nicht nur eine Variable für alle. Ob und wie du das in Funktionen packst ist eigentlich egal, und ja die IP und Portnummer brauchst du nicht unbedingt. mfg, count-doku |
||
![]() |
GearTechDEehemals 'KillerJo96' |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wow, genau das was ich brauche. Irgendwie hab ich mir schon gedacht das man die IP+Port nicht unbedingt braucht. (Vielleicht später für IP Banns oder so zu verteilen 'lach)
Naja danke. Ich hoffe damit komme ich jetzt mal klar. sonst bin ich wirklich zu dumm. Aber danke. Edit: Ich habe jetzt alles in meinen Game Client so angepasst. Es hat auf der ersten Blick funktioniert. Ich denk mal ich habe es jetzt endlich geschafft. Vielen Dank an dieser Stelle an dich Count Doku. |
||
Mit freundlichen Grüßen: GearTechDE |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group