Delphi-Forum.de Delphi-Library.de
C-Sharp-Forum.de C-Sharp-Library.de
Registrieren Login Suche Hilfe Sitemap
brauche hilfe bei client server verbindung für ein netzweksp
spacer
Autor Nachricht
mrs doubtfire
Hält's aus hier

Beiträge: 4
Dabei seit: 01.02.2010



BeitragVerfasst am: Mo 01.02.10 18:59  Antworten mit Zitat Beitrag melden
hallo leute,
hoffe das ich hier das thema nicht verpasst habe....
ich binn neu hier und brauche hilfe

ich habe vor ein pokerspiel zu schreiben, was über das netzwerk läuft, da poker an einem rechner ja eher sinnlos ist.....

das einziege was mir noch fehlt ist, das die daten der spieler über das lokale netz zu senden.
ich habe mir schon einige beispiele für client server verbindungen angesehen, die habe ich aber leider auch nicht so ganz verstanden..... :(
zu meinem problem:

ich möchte ein string [] von einem client zu einem server schicken, der soll dan die handlung auswerten, also ob wer die karten weg geworfen hatt.. und dieses dan an die anderen spieler weiterschicken, danach soll der nächste spieler den "Aufruf" bekommen das er dran ist usw, bis das spielr beendet ist

das man dazu einen stream reader/writer braucht habe ich inzwischen herraus gefunden,
aber das ist auch schon alles...

könnt ihr mir villeicht helfen wie ich das genau machen kann?
ich liebe zwar das programieren, habe aber keine ahnung von netzwerk funktionen
und wäre über eure hilfe sehr dankbar
Private Nachricht sendenPosting in privater Nachricht zitieren
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star

Beiträge: 453
Dabei seit: 28.01.2009
Wohnort: Stuttgart

Windows XP
C#, VS 2008
BeitragVerfasst am: Mo 01.02.10 21:45  Antworten mit Zitat Beitrag melden
Hallo und :welcome:,

den Stream hast du ja schon entdeckt ;) Um ein string Array zu versenden gibt es mehrere Möglichkeiten. Du könntest die einzelnen Strings aneinanderer Ketten und mit einem bestimmten Trennzeichen (Newline, "-", ":", usw.) trennen. Auf der Gegenseite muss man daraus nur wieder einen String machen.

Sollte also kein Problem sein. Wie deine Kommunikation aufgebaut ist, wird in einem Protokoll festgelegt.

Gruß Daniel
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
mrs doubtfire
Hält's aus hier

(Threadstarter)

Beiträge: 4
Dabei seit: 01.02.2010



BeitragVerfasst am: Mo 01.02.10 22:13  Antworten mit Zitat Beitrag melden
thx,
das mit dem aneinanderreihen habe ich auch schon gedacht, das wollte ich dam mit der # machen und das ganze mit der split funktion wieder aufteilen,

mein problem liegt eher darin, das ich nicht so genau weiß was man für den server/client alles braucht,

alsi ip und port ist klar,
aber irgendwo mussen die ip's ja auch im server gespeichert sein, ich muss ja wissen was zu wem kommt und wieviele spieler teilnehmen wollen

und wie ich nun was an was schicke weiß ich auch noch nicht so genau,

wäre nett, wen du mir son kleines "einfaches" beispiel gibst,

ich habe mir zwar schon einige server beispiele angesehen und auch ausprobiert, aber irgendwie war das alles nicht so das richtige.....

ich habe auch schon versucht selber einen server zu schreiben, aber immer wen ich den stram abgehört habe ist der da einfach nicht mehr von los gekommen...
dh. die daten wurden zwar über den server von client zu client geschickt, aber der server konnte nichts anderes und es funktionierte auch nur mit 2 clients

das habe ich aus nem chat beispiel abgewandelt, aber da ich nicht genau wusste was für was zuständig ist hat das nicht so ganz gklappt...

und ich fand den quelltext nur zum senden und empfangen der daten nen bischen lang, das waren an die 200 zeilen

kennst du da was einfacheres, wo man nur die ip und den port eingibt und das ganze wegschickt zum server?

also etwas was nicht so kompliziert ist?
Private Nachricht sendenPosting in privater Nachricht zitieren
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star

Beiträge: 453
Dabei seit: 28.01.2009
Wohnort: Stuttgart

Windows XP
C#, VS 2008
BeitragVerfasst am: Mo 01.02.10 22:45  Antworten mit Zitat Beitrag melden
In .NET gibt es dafür den TcpClient und TcpListener. Der die alle grundlegenden Aufgaben einer Netzwerkverbindung abnimmt.

Du musst dir jetzt halt überlegen, wie alles ablaufen soll. Wahrscheinlich ist das Einfachste eine Client/Server-Architektur. Sprich ein Spieler (oder auch Standalone-Programm) macht einen Server auf. Andere Clients können sich dann auf diesen Server connecten. Der Server informiert die angemeldeten Clients über diverse Sachen (wie zum Beispiel neuer Spieler, Flop gegeben, Race, usw.).

Vlt. solltest du zuerst ein einfaches Chat-Programm machen um zu verstehen, wie das ganze ablaufen soll.

Alternativ kannst du es dir auch komplizierter (aber sicher eleganter) mit WCF machen. Da kann ich dir aber nicht helfen :/
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
mrs doubtfire
Hält's aus hier

(Threadstarter)

Beiträge: 4
Dabei seit: 01.02.2010



BeitragVerfasst am: Mo 01.02.10 22:55  Antworten mit Zitat Beitrag melden
also ich wollte schon bei c# bleiben,

ich habe auch schon einige beispiele zu tcp gefunden, aber ich frage mich immernoch wo da die ip's der angemeldeten user sind
und wie man die verschiedenen streams dan adressiert,

bis jezt habe ich nur die aufgaben wer was machen soll, und was ich übertragen will

funktioniert das den, das ich immer nur einen client anschreibe und den stream dan wieder beende??

als ich das versucht habe hat der server dan keine weitere verbindung mehr aufbauen können..
Private Nachricht sendenPosting in privater Nachricht zitieren
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star

Beiträge: 453
Dabei seit: 28.01.2009
Wohnort: Stuttgart

Windows XP
C#, VS 2008
BeitragVerfasst am: Di 02.02.10 09:34  Antworten mit Zitat Beitrag melden
.NET ist nur das Framework. Du kannst als Programmiersprache schon C# verwenden, oder halt eine ander .NET-Sprache (Vb.NET, Visual C++, ...).

Du musst dem Server halt sagen, dass er ständig auf weitere Clients warten soll. Am Besten machst du einen Thread auf, in dem du nur auf neue Clients wartest. Wenn sich ein Client anmeldet schmeißt du ein Event, dass ein neuer Client anwesend ist.

Die Klasse legt standardmäßig automatisch (im Hintergrund) die eingehende Verbindung auf einen anderen Port, so dass du mehrere Verbindungen annehmen kannst.

Versuch fürs erste einfach einen simplen Server der mehrere Clients handeln kann zu programmieren. Zum Beispiel einen TimeServer für mehrere Clients. Wenn das geht brauchst du nur noch den "Inhalt" austauschen.
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
mrs doubtfire
Hält's aus hier

(Threadstarter)

Beiträge: 4
Dabei seit: 01.02.2010



BeitragVerfasst am: Di 02.02.10 09:58  Antworten mit Zitat Beitrag melden
also braucht jeder client seinen eigenen port?

kan man nicht alle über einen port laufen lassen?
Private Nachricht sendenPosting in privater Nachricht zitieren
danielf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star

Beiträge: 453
Dabei seit: 28.01.2009
Wohnort: Stuttgart

Windows XP
C#, VS 2008
BeitragVerfasst am: Di 02.02.10 11:34  Antworten mit Zitat Beitrag melden
Zitat:
Die Klasse legt standardmäßig automatisch (im Hintergrund) die eingehende Verbindung auf einen anderen Port, so dass du mehrere Verbindungen annehmen kannst.


Versuch es doch einfach mal, dann wirst du schon merken, dass du nichts denken/tun musst ;)
Private Nachricht sendenPosting in privater Nachricht zitieren Webseite dieses Mitglieds besuchen
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
Beiträge vom vorherigen Thema anzeigen:   
home home