IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
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 Hartinger
Vlastník
Avatar
Odpovídá na Зайчик
David Hartinger:18.2.2013 22:05

U chatu jsou 2 klienti a 1 server, ne?

Nahoru Odpovědět
18.2.2013 22:05
New kid back on the block with a R.I.P
Avatar
Зайчик
Člen
Avatar
Odpovídá na David Hartinger
Зайчик: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 Hartinger
Vlastník
Avatar
Odpovídá na Зайчик
David Hartinger:18.2.2013 22:07

aha, tak jsi to myslel :)

Nahoru Odpovědět
18.2.2013 22:07
New kid back on the block with a R.I.P
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
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
Tvůrce
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
Avatar
matesax
Tvůrce
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
Tvůrce
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
Tvůrce
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
Tvůrce
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
Tvůrce
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
Tvůrce
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
Tvůrce
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
Tvůrce
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.