• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z połączeniem TCP/IP C#

Cloud VPS
0 głosów
1,717 wizyt
pytanie zadane 7 lipca 2020 w C# przez MultiWu Nowicjusz (120 p.)

Witam, piszę właśnie interfejs sieciowy pod moją minigrę.
I mam taki problem, Jedyne co w kółko klient otrzymuje to: OK REG

Tak to powinno działać:

Klient łączy się z serwerem.
Klient wysyła wiadomość "REG"
Serwer sprawdza wiadomość, jeżeli jest to "REG" to odpowiada: "OK REG"
Klient sprawdza wiadomość, jezeli jest to "OK REG", odpowiada: <NICK z pola rejestracji>
Serwer zapisuje treść wiadomości, jeżeli wszystko poszło poprawnie to odpowiada: "OK REG1"
Klient sprawdza wiadomość, jezeli jest to "OK REG1", odpowiada: <HASŁO z pola rejestracji>
Serwer zapisuje treść wiadomości, jeżeli wszystko poszło poprawnie to odpowiada: "OK REG2"
Klient sprawdza wiadomość, jeżeli jest to "OK REG2", oczekuje na wiadomość z (w kolejności od 1 wzwyż) numerycznym ID użytkownika które generuje serwer.
Serwer wysyła wiadomość z ID użytkownika.
Klient je odbiera i zapisuje.
A dalej nic się dziać nie powinno.

Ale jednak cały czas serwer wyrzuca error: System.Net.Sockets.SocketException (10053): Nawiązane połączenie zostało przerwane przez oprogramowanie zainstalowane w komputerze-hoście.
 at AC_Simulator_Server.Program.ExecuteServer() in C:\Users\**\source\repos\AC Simulator Server\Program.cs:line 104

Tutaj dodaję plik źródłowy serwera (C# Aplikacja konsolowa): Gist

To otrzymuję w oknie debugowania VS w aplikacji klienta:
Socket connected to -> [****::****:****:****:******]:11111 
Message from Server -> OK REG
Message from Server -> OK REG

A tutaj dodaję archiwum z kodem klienta: https://anonfiles.com/F5M262E3oe/AC_Simulator_Client_7z

Oczywiście będę bardzo wdzięczny za wszelką pomoc :)

komentarz 9 lipca 2020 przez sunzi Bywalec (2,000 p.)

A próbowałeś to przedebugować w ten sposób: odpal sobie klient i serwer w dwóch instancjach visual studio i krok po kroku sprawdziłeś jak działa? Bo jak ja to zrobię to w sumie niczego się nie nauczysz i dalej będziesz stał w miejscu i za chwilę będziesz miał inny podobny problem nie do rozwiązania :/

Jeśli liczysz na gotowca to przyjrzyj się liniom (tam jest błąd):

Console.WriteLine("Message from Server -> {0}",
                              Encoding.ASCII.GetString(messageReceived,
                                                         0, byteRecv));
string responseReg1 = Encoding.ASCII.GetString(messageReceived, 0, byteRecv);

 

komentarz 9 lipca 2020 przez MultiWu Nowicjusz (120 p.)
Już zauważyłem :D. Dzięki wielkie za pomoc
komentarz 10 lipca 2020 przez sunzi Bywalec (2,000 p.)

yes

Dodam jeszcze od siebie, że byś z łatwością uniknął tego błędu gdyby odczytywanie poszczególnych segmentów z socketa były wykonywane w osobnych metodach wink

komentarz 22 lipca 2020 przez piotrsz109 Stary wyjadacz (13,730 p.)

@Oliwier Minota, Jeśli masz client'a i serwer w tej samej solucji, możesz oba projekty uruchamiać i debugować w jednym oknie. Ustawienia do tego, są w ustawieniach solucji w zakładce Debug, o ile dobrze pamiętam

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 374 wizyt
pytanie zadane 14 kwietnia 2021 w Sieci komputerowe, internet przez dark41 Użytkownik (760 p.)
0 głosów
0 odpowiedzi 280 wizyt
0 głosów
1 odpowiedź 583 wizyt
pytanie zadane 3 listopada 2016 w Sieci komputerowe, internet przez Piotr Jarema Użytkownik (970 p.)

93,467 zapytań

142,460 odpowiedzi

322,734 komentarzy

62,847 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...