Witam
Pisze sobie aplikację która ma pełnić rolę zwykłego chata jaki jest dostępny np na wp.pl albo onet.pl. I mam 2 aplikacje - serwera i klienta. Wszystko działa mi ok tylko nie potrafię zrobić jednej rzeczy a mianowicie, po odpaleniu aplikacji klienta i zalogowaniu sie na serwer uzytkownik nie jest dodawany (bądź też w przypadku wylogowania usuwany) do listbox w aplikacji klienta.
Mam taki kodzik serwera - metoda logowania sie i wylogowania sie:
public Dictionary<string,string> signedList;
public cChatServer()
{
signedList = new Dictionary<string,string>();
}
public bool signIn (string _name)
{
Console.Write("[" + _name + "] loguje się ...");
if (signedList.ContainsKey(_name))
{
Console.WriteLine("BŁĄD, użytkownik o takiej nazwie już istnieje");
return false;
}
else
{
signedList.Add(_name,"");
Console.WriteLine("OK");
return true;
}
}
public bool signOut (string _name)
{
Console.Write("[" + _name + "] wylogowuje się ...");
if (!signedList.ContainsKey(_name))
{
Console.WriteLine("BŁĄD, użytkownik o takiej nazwie nie był zalogowany");
return false;
}
else
{
signedList.Remove(_name);
Console.WriteLine("OK");
return true;
}
}
oraz kod klienta (dokładniej timera które jest uruchamiany co 0,5 sekundy w celu sprawdzenia czegoś - w tym wypadku czy ktos się nowy nie zalogował):
void refreshTimer_Tick(object sender, EventArgs e)
{
//Wykonuje się tylko jak jesteś podłączony
if (state == APP_STATES.CONNECTED)
{
outputTextBox.Text += GLOBAL.server.feedMessages(nickTextBox.Text);
if (!listBox1.Items.Contains(nickTextBox.Text))
{
listBox1.Items.Add(nickTextBox.Text);
}
}
}
I teraz pytanie. Jak zrobić by do listBox1 dodac w tym wypadku _name z signedList.Add(_name,"") - kod serwera. Bo teraz mam zawsze 1 uzytkownika pokazanego jako dostepnego tzn tego ktory odpalił aplikacje klienta.
Co musze dopisać - jaki warunek do pogrubionego kodu aby aby dodac do listBox1 uzytkownika??
Mysle ze trzeba było by zrobic jakas funkcje ktora zwraca bieżącą wartosć signedList.Add(_name,"") (i ją wywołać w Timerze ale nie wiem jak) i dopisać listBox1.Items.Add[signedlist] i takze dopisac warunek nad pogrubioną czescia kodu ze jesli np funkcja public bool signIn (string _name) i funkcja public bool signOut (string _name) zwracaja true to wykonuje sie cos takiego jak ponizej tylko ze listBox1.Items.Add(signedlist{indeks]).
Proszę o pomoc i jakis skromny kod ktory rozwiazałby moj problem.</wiki>