Thread View: alt.pl.comp.lang.csharp
2 messages
2 total messages
Started by Showstoppa
Mon, 19 Apr 2004 21:22
chat na socketach - wysylanie textu do wszystkich
Author: Showstoppa
Date: Mon, 19 Apr 2004 21:22
Date: Mon, 19 Apr 2004 21:22
49 lines
1896 bytes
1896 bytes
witam!
walcze dalej z czatem, dziekuje za poprzednie posty. W chwili obecnej mam
taka sytuacja, iz woddzialenym watki w petli program nasluchuje na
wybranym porcie, jesli user wpisze test do wyslania, wcisniej button,
odpala sie funka send - przedstawiam pozniej. idea jest taka, iz pobieram
ip z tablicy, tworze obiekt, lacze sie i wysylam. zauwazylem, ze dlugo to
trwa. Macie pomsyly, jak przyspieszyc wysylanie info do wszystkich
komputerow w sieci lokalnej, ktore maja wlaczonego czata ? w tej chwili
wyglada to tak:
private void send()
{
// obiekt potrzebny do kodowania
Encoding unicode = Encoding.Unicode;
// tworze tablice z adresami ip w sieci
string [] komputery = {"10.0.0.21","10.0.0.225"};
// konwersja danych
byte[] ba = unicode.GetBytes(this.textBox2.Text);
foreach (string ip in komputery)
{
try
{
TcpClient nadawca = new TcpClient();
nadawca.Connect(ip,345);
Stream przekaz = nadawca.GetStream();
przekaz.Write(ba,0,ba.Length);
nadawca.Close();
}
catch
{
this.statusBar1.Text = "nie moge sie polaczyc z " + ip;
}
}
Dzieki!
Re: chat na socketach - wysylanie textu do wszystkich
Author: Marek Janaszewski USUNTO. z adre...
Date: Mon, 19 Apr 2004 23:49
Date: Mon, 19 Apr 2004 23:49
39 lines
2742 bytes
2742 bytes
Showstoppa wrote: > witam! > > walcze dalej z czatem, dziekuje za poprzednie posty. W chwili obecnej > mam taka sytuacja, iz woddzialenym watki w petli program nasluchuje > na wybranym porcie, jesli user wpisze test do wyslania, wcisniej > button, odpala sie funka send - przedstawiam pozniej. idea jest taka, > iz pobieram ip z tablicy, tworze obiekt, lacze sie i wysylam. > zauwazylem, ze dlugo to trwa. Macie pomsyly, jak przyspieszyc > wysylanie info do wszystkich komputerow w sieci lokalnej, ktore maja > wlaczonego czata ? w tej chwili wyglada to tak: [...] Witam! Przejdź na UDP. TCP daje wiele ale jest wolniejszy i ma duży narzut. Dodatkowo TCP to protokół sesyjny a nie wiem czy jest to Ci potrzebne. Wysyłasz wiadomość i zapominać o tym. Nie wiem czy w przypadku sieci LAN potrzebne są potwierdzenia przesłania pakietu. Generalnie musisz się zapoznać dwoma protokółami transportowymi dostępnymi w TCP/IP: TCP vs UDP i dokonać wyboru. W sieci TCP/IP jest jeszcze coś jak broadcast. Komunikacja jeden host - jeden host to unicast. Komunikacja jeden host - wiele hostów to broadcast. Broadcat dotyczy zwykle jednego segmentu sieci bo routery tego nie puszczają. Internet zapchał by się całkowicie :-) No ale tego raczej bym nie ruszał bo administratorzy będą Ciebie ścigać za nadmierny ruch tła w sieci. O ile wiem w praktyce stosuje jakieś serwery, choćby do odnajdywana i czysty peer-to-peer nie występuje. Ciekawostka: Jest jeszcze mutlicast, stosowany przez routery do chyba rozsyłania tras albo jako audycje (telewizja, radio) w Interncie. Czyli jeden host a pakiet trafia do wiele odbiorców, którzy go zasubsrybują. Są do tego zarezerwowane specjalne adresy IP w Internecie. -- Pozdrawiam, Marek Janaszewski [ j_m...@gazeta.pl ]
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads