Pouze tento týden sleva až 80 % na e-learning týkající se C# .NET
Nauč se s námi víc. Využij 50% zdarma na e-learningové kurzy.
C# week
Avatar
Rasta_Man
Člen
Avatar
Rasta_Man:18.2.2013 21:40

Ahoj dneska jsem vyděl tutoriál na TCP/IP komunikaci tak mě napadlo že bych mohl udělat chat, mělo by to server a klienta ale zatím se mi to nějak nepodařilo pořešit server sice přímá a klient odesílá ale nevím jak udělat aby server vlastně odesílal jiným klientům, prostě nevím jak vzít zprávu o jednoho uživatele a poslat to pomocí serveru ostatním. Byl bych rád kdyby někdo poradil :)

 
Odpovědět
18.2.2013 21:40
Avatar
Зайчик
Člen
Avatar
Odpovídá na Rasta_Man
Зайчик:18.2.2013 22:03

u chatu se to dělá tak že server naslouchá i odesílá, client nasouchá i odesílá :) mě se tu nechce celej server psát počkej si a udělám na to tutoriál nebo ti tu někdo jiný poradí :)

Nahoru Odpovědět
18.2.2013 22:03
Коммунизм для нашего будущего!
Avatar
Rasta_Man
Člen
Avatar
Rasta_Man:18.2.2013 22:05

Jo děkuji pokusím se to nějak udělat doufám že z toho bude alespoň trochu dobrý program. :)

 
Nahoru Odpovědět
18.2.2013 22:05
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Зайчик
David Čápka:18.2.2013 22:05

U chatu jsou 2 klienti a 1 server, ne?

Nahoru Odpovědět
18.2.2013 22:05
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Зайчик
Člen
Avatar
Odpovídá na David Čápka
Зайчик:18.2.2013 22:06

u chatu může bejt 50000 klientu a jeden server jde oto že obě strany naslouchaj i odesílaj

Nahoru Odpovědět
18.2.2013 22:06
Коммунизм для нашего будущего!
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Зайчик
David Čápka:18.2.2013 22:07

aha, tak jsi to myslel :)

Nahoru Odpovědět
18.2.2013 22:07
Jsem moc rád, že jsi na síti, a přeji ti top IT kariéru, ať jako zaměstnanec nebo podnikatel. Máš na to! :)
Avatar
Luboš Běhounek Satik
Autoredaktor
Avatar
Odpovídá na Зайчик
Luboš Běhounek Satik:18.2.2013 23:44

Naslouchá jen server. Že naslouchá neznamená, že nemůže odesílat data.

Nahoru Odpovědět
18.2.2013 23:44
https://www.facebook.com/peasantsandcastles/
Avatar
Зайчик
Člen
Avatar
Odpovídá na Luboš Běhounek Satik
Зайчик:18.2.2013 23:47

jj a klient kouká do zdi a vymýšlí si to co ostatní posílají? Když nenaslouchá a jen odesílá ? :D

Nahoru Odpovědět
18.2.2013 23:47
Коммунизм для нашего будущего!
Avatar
Luboš Běhounek Satik
Autoredaktor
Avatar
Odpovídá na Зайчик
Luboš Běhounek Satik:19.2.2013 0:04

To že naslouchá se týká jen navazování spojení, samotné spojení je už pak obostranné :)

Nahoru Odpovědět
19.2.2013 0:04
https://www.facebook.com/peasantsandcastles/
Avatar
matesax
Redaktor
Avatar
matesax:19.2.2013 6:28

Chat bych řešil přes sockety, kde je server řešen obecným modelem klienta. Všechny akce klienta jsou vnořené v prvotní akci - onstart. Ta má parametr typu IWebSocketCon­nection, jakož i vnořená akce onopen. Tím se nabízí jednoduché řešení - v onopen přidáš nového příchozího do seznamu všech klientů a v onclose jej zase vymažeš. Parametr v
onstart je hlavní - což zase něco umož^nuje - zpráva kterou dostaneš je na 10000% od IWebSocketCon­nection které nabízí onstart. Tím tedy můžeš volat na nekonkrétního odesílatele. Pokud budeš chtít nějakého konkrétního, tak tu máš právě onen seznam všech klientů...

 
Nahoru Odpovědět
19.2.2013 6:28
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
matesax
Redaktor
Avatar
matesax:19.2.2013 7:26
WebSocketServer server = new WebSocketServer("ws://IP:port");

List<IWebSocketConnection> clients = new List<IWebSocketConnection>();

server.Start(socket => // nový klient se připojil
{
    socket.OnOpen = () => // pohlídání otevření spojení příchozího klienta
    {
        clients.Add(socket);
    };

    socket.OnClose = () => // ukončení spojení
    {

    };

    socket.OnMessage = message => // přijetí nové zprávy
    {
        socket.Send(string);
    };
});
Editováno 19.2.2013 7:30
 
Nahoru Odpovědět
19.2.2013 7:26
Avatar
matesax
Redaktor
Avatar
matesax:19.2.2013 7:47

Samozřejmě:

socket.OnClose = () =>
{
    clients.Remove(socket);
};
 
Nahoru Odpovědět
19.2.2013 7:47
Avatar
Зайчик
Člen
Avatar
Odpovídá na Luboš Běhounek Satik
Зайчик:19.2.2013 11:18

aha, to pak jo ;) mám ty pojmy popletený malinko :P

Nahoru Odpovědět
19.2.2013 11:18
Коммунизм для нашего будущего!
Avatar
Mediel
Redaktor
Avatar
Odpovídá na matesax
Mediel:23.2.2013 13:16

Co kdyz se na server pripoji vice lidi a zacnou posilat nejake sahosahle texty? Nebo dokonce nejaky soubor? Tady bych pouzil ta vlakna, jak jsi o nich predtim basnil, ale to ne... tady zas jdes na dinosaura s kapesnim nozikem....

Nahoru Odpovědět
23.2.2013 13:16
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
matesax
Redaktor
Avatar
Odpovídá na Mediel
matesax:23.2.2013 13:19

Coo? Soubory sem nepleť - ty pošleš přes stream... Sáhodlouhé texty - není problém... Co to blábolíš? Chaty přes sockety fungují bez problémů...

 
Nahoru Odpovědět
23.2.2013 13:19
Avatar
Mediel
Redaktor
Avatar
Odpovídá na matesax
Mediel:23.2.2013 13:21

:D No, rekneme, ze vim o cem mluvim, rekneme, ze treba jsem zkousel delat programek pro skolu, takovy chat po lan a bez vlaken to bylo nepouzitelne :) Ale pokud chces chat mezi 2 pc, tak ano, nepotrebujes vlakna :)

Nahoru Odpovědět
23.2.2013 13:21
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
matesax
Redaktor
Avatar
Odpovídá na Mediel
matesax:23.2.2013 13:27

V životě jsem nepotřeboval vlákna na chat. Jako k čemu? Chat se řeší podobně jako ty sockety - protože nač dělat xy klientů... Je to pořád jeden klient, s proměnitelnou IP, ddd,...

 
Nahoru Odpovědět
23.2.2013 13:27
Avatar
Mediel
Redaktor
Avatar
Mediel:23.2.2013 13:37

:D v tom pripade jsi vzivote neudelal poradny chat :D Dobre napisu to trochu jinak...

neni chat a chat... Je rozdil mit jedno okno a do nej bouchat zpravy od vsech a je rozdil mit jedno okno, kam chodi zpravy od vsech a pak treba dalsi okno na soukrome zpravy mezi 2 ci vice uzivateli. Tedy "skupinovy chat" ale zacinam se obavat, ze tva vsevedomost a vsemohoucnost je natolik silna, ze budu muset polozit zbrane :D Casto byvam oslepen tvoji moudrosti a tak bych nerad, aby tve svetlo vyhaslo :D

Nahoru Odpovědět
23.2.2013 13:37
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Mediel
Redaktor
Avatar
Odpovídá na Rasta_Man
Mediel:23.2.2013 13:53

Ahoj, koukni se na tohle :) http://stackoverflow.com/…on-threading je to vcelku zajimave a vypada to uz jako kvalitni chat :)

Nahoru Odpovědět
23.2.2013 13:53
Nechci vám ukazovat, jak dobrý jsem já ... Chci vám ukázat, jak dobrý můžete být vy ... Když uvěříte ... V sami sebe...
Avatar
Rasta_Man
Člen
Avatar
Odpovídá na Mediel
Rasta_Man:23.2.2013 21:51

Děkuji za odpověď a děkuji taky všem ostatním skusím to nějak splácat :D

 
Nahoru Odpovědět
23.2.2013 21:51
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 20 zpráv z 20.