Witam!
Tworzę aplikację kliencką mojego komunikatora i napotkałem się na pewien problem. Przy uruchomieniu aplikacji zostaje wyświetlone okno logowania, po wpisaniu przez użytkownika danych, program łączy się z serwerem i jeżeli wszystko jest okej, to forma logowania się zamyka i otwiera się główna forma. W konstruktorze głównej formy jest do niej przekazywany TcpClient z formy logowania. Konstruktor wygląda tak:
public Klient(TcpClient kliente)
{
InitializeComponent();
klient = kliente;
stream = klient.GetStream();
r = new BinaryReader(stream);
w = new BinaryWriter(stream);
//....
}
Gdy w konstruktorze chcę coś wysłać za pomocą BinaryWriter'a to wszystko jest okej, lecz gdy chcę wykorzystać BinaryReader'a w BackgroundWorkerze głównej formy to przy poleceniu r.ReadString()
dostaję błąd (w trakcie trwania aplikacji): "Cannot access a disposed object.
Object name: System.Net.Sockets.NetworkStream.", czasami zdarza się, że otrzymuję błąd: "Unable to read data from the transport connection: Operacja blokująca została przerwana przez wywołanie funkcji WSACancelBlockingCall." Nie wiem o co chodzi, szukałem w Google, ale nic ciekawego nie znalazłem. Jeżeli ktoś wiedziałby jak sobie z tym poradzić to byłbym naprawdę bardzo wdzięczny.