Forum » Programiranje » [C#] Client -> Server komunikacija dela, kako je pa z Server -> Client?
[C#] Client -> Server komunikacija dela, kako je pa z Server -> Client?
c0dehunter ::
Ja, ne vem kako drugače nasloviti tole temo :)
Torej, imamo aplikacijo ki je klient in aplikacijo ki je server. Uspel sem ju povezati, tako da lahko pošiljam tekst iz clienta na server.
Povezava je sledeča: server vsebuje TcpListener, client pa TcpClient. Tekst iz clienta pošiljam z StreamWriter, na serverju pa ga preberem z StreamReader-jem.
Kako bi sedaj lahko to povezavo izkoristil za pošiljanje teksta iz serverja na client, torej obratno? Z StreamWriterjem iz serverja ne morem, ker v serverju ne obstaja TcpClient, brez katerega pa ne moreš definirat StreamWriter.
Verjetno je kaka preprosta fora, ampak je kljub nekajurnemu iskanju včeraj in danes nisem našel. Hvala!
Torej, imamo aplikacijo ki je klient in aplikacijo ki je server. Uspel sem ju povezati, tako da lahko pošiljam tekst iz clienta na server.
Povezava je sledeča: server vsebuje TcpListener, client pa TcpClient. Tekst iz clienta pošiljam z StreamWriter, na serverju pa ga preberem z StreamReader-jem.
Kako bi sedaj lahko to povezavo izkoristil za pošiljanje teksta iz serverja na client, torej obratno? Z StreamWriterjem iz serverja ne morem, ker v serverju ne obstaja TcpClient, brez katerega pa ne moreš definirat StreamWriter.
Verjetno je kaka preprosta fora, ampak je kljub nekajurnemu iskanju včeraj in danes nisem našel. Hvala!
I do not agree with what you have to say,
but I'll defend to the death your right to say it.
but I'll defend to the death your right to say it.
Spura ::
Nekaj ur si iskal?
1. zadetek na googlu za C# tcplistener
http://msdn.microsoft.com/en-us/library...
Z network steam lahko beres in pises.
1. zadetek na googlu za C# tcplistener
http://msdn.microsoft.com/en-us/library...
// TcpListener server = new TcpListener(port); TcpListener server = new TcpListener(localAddr, port); // Start listening for client requests. server.Start(); // Buffer for reading data Byte[] bytes = new Byte[256]; String data = null; // Enter the listening loop. while(true) { Console.Write("Waiting for a connection... "); // Perform a blocking call to accept requests. // You could also user server.AcceptSocket() here. TcpClient client = server.AcceptTcpClient(); Console.WriteLine("Connected!"); data = null; // Get a stream object for reading and writing NetworkStream stream = client.GetStream();
Z network steam lahko beres in pises.
c0dehunter ::
Z network steam lahko beres in pises.
No evo, točno tole je informacija, ki mi je manjkala. Ampak v poplavi vsega je tole težko videt, medtem ko asistent na vajah o tem ni ničesar povedal.
Spura hvala!
I do not agree with what you have to say,
but I'll defend to the death your right to say it.
but I'll defend to the death your right to say it.
Mitja Bonča ::
Bom vprašal kar v tej temi, da ne bom odpiral nove, mene pa zanima sledeče:
Sam sem naredil program za pogovor (server - client), uporabil sem tcpListener in tcpClient. Server se postavi, in kdor ima pač program za clienta, se lahko poveže na server in vsi lahko komunicirajo med sabo. Ampak, celotna zadeva ima en server.
Sedaj bi pa rad naredil program, kot naprimer igra Poker, kjer imaš izbiro "Nova igra" in ob izbiri le te, se mora narediti nov server. Kako se to izvede? Se tukaj resnično naredi vedno novo TcpListener ali kako to gre? Ampak, vse igre, ki se uzstvarijo, morajo biti pa na "enem osnovnem" serverju. Ta mi ni jasno, kako narediti "več serverjev", ker mora biti vedno en IP za vse Nove kreirane igre.
Potem takem se lahko ustvari samo en TcpListener. Ampak, kako lahko potem kreira Nove igre, ločene med samo in v vsako se lahko potem pridružijo clienti.
Sam sem naredil program za pogovor (server - client), uporabil sem tcpListener in tcpClient. Server se postavi, in kdor ima pač program za clienta, se lahko poveže na server in vsi lahko komunicirajo med sabo. Ampak, celotna zadeva ima en server.
Sedaj bi pa rad naredil program, kot naprimer igra Poker, kjer imaš izbiro "Nova igra" in ob izbiri le te, se mora narediti nov server. Kako se to izvede? Se tukaj resnično naredi vedno novo TcpListener ali kako to gre? Ampak, vse igre, ki se uzstvarijo, morajo biti pa na "enem osnovnem" serverju. Ta mi ni jasno, kako narediti "več serverjev", ker mora biti vedno en IP za vse Nove kreirane igre.
Potem takem se lahko ustvari samo en TcpListener. Ampak, kako lahko potem kreira Nove igre, ločene med samo in v vsako se lahko potem pridružijo clienti.
Zgodovina sprememb…
- spremenil: Mitja Bonča ()
LeQuack ::
Narediš listener na drugem portu. Portov je od 0 - 65535. Druga rešitev je, da imaš vse cliente na istem portu in ročno vodiš, kdo pripada h kateri igri (preko nekih parametrov, id-jev in podobno).
Quack !
Mitja Bonča ::
Druga opcija se mi zdi boljša kot prva, čeprav je sigurno več dela. Bom poizkusil.
Bi te samo vprašal, če imaš mogoče kakšen primer, kako bi ročno vodil cliente, kdo pripada h kateri igri?
Bi te samo vprašal, če imaš mogoče kakšen primer, kako bi ročno vodil cliente, kdo pripada h kateri igri?
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Socket ServerOddelek: Programiranje | 2444 (1637) | fx |
» | ASP.NET + C# vprašanjeOddelek: Programiranje | 2797 (1811) | Morenov |
» | [Visual C#] zaradi while zanke se ne pokaže oknoOddelek: Programiranje | 1002 (879) | Fresh-Grass |
» | c# base class, derived class, inheritance problemOddelek: Programiranje | 1403 (1282) | Vapo1 |
» | Kako pošiljanje datotek v JAVI.Oddelek: Programiranje | 1847 (1718) | kopernik |