Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [c#] Client/Server errore socket.Connected
Forum - C# / VB.NET - [c#] Client/Server errore socket.Connected

Avatar
Valcars92 (Normal User)
Newbie


Messaggi: 20
Iscritto: 17/07/2021

Segnala al moderatore
Postato alle 10:01
Giovedì, 22/07/2021
Salve a tutti rieccomi dinuovo a rompere le scatole xD..... Ho un problema con un programma Client/Server che stavo provando a fare però ho un problema con la funzione socket.connected..o meglio ho provato anche a mandare un messaggio a client ma sembra che non ci sia proprio la connessione... cioè il server si connette al client un secondo poi si disconnette non riesco a capire il perchè... almeno questo è il problema che penso che sia... comunque posto il codice che a spiegare non è il mio forte xD

==========
SERVER
==========
Program.cs
Codice sorgente - presumibilmente C++

  1. using System;
  2.  
  3. namespace Server
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Network netWork = new Network();
  10.  
  11.             netWork.initClient();
  12.  
  13.             if(netWork.clientSocket.Connected == true)
  14.             {
  15.                 Console.WriteLine("Connesso");
  16.                 Console.ReadLine();
  17.             }
  18.             else
  19.             {
  20.                 Console.WriteLine("non connesso");
  21.                 Console.ReadLine();
  22.             }
  23.  
  24.            
  25.         }
  26.     }
  27. }



Classe Network.cs (SERVER)
Codice sorgente - presumibilmente C++

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Sockets;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8.  
  9. namespace Client
  10. {
  11.     class Network
  12.     {
  13.         public Socket clientSocket;
  14.  
  15.         public void initClient()
  16.         {
  17.             Socket acceptSocket;
  18.  
  19.            
  20.             clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  21.             IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 11000);
  22.  
  23.             try
  24.             {                    
  25.                 clientSocket.Bind(remoteEP);
  26.                 clientSocket.Listen(10);
  27.                 Console.WriteLine("In attesa di connessioni......");
  28.                 acceptSocket = clientSocket.Accept();
  29.                
  30.  
  31.             }
  32.             catch(ArgumentNullException ane)
  33.             {
  34.                 Console.WriteLine(ane.ToString());
  35.             }catch (SocketException se)
  36.             {
  37.                 Console.WriteLine(se.ToString());
  38.             }catch (Exception e)
  39.             {
  40.                 Console.WriteLine(e.ToString());
  41.             }
  42.            
  43.         }
  44.                
  45.     }
  46. }



==========
CLIENT
==========

Program.cs
Codice sorgente - presumibilmente C++

  1. using System;
  2.  
  3. namespace Client
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Network netWork = new Network();
  10.  
  11.             netWork.initConnection();
  12.  
  13.             if (netWork.serverSocket.Connected == true)
  14.             {
  15.                 Console.WriteLine("Connesso");
  16.                 Console.ReadLine();
  17.             }
  18.             else
  19.             {
  20.                 Console.WriteLine("non connesso");
  21.                 Console.ReadLine();
  22.             }
  23.            
  24.         }
  25.     }
  26. }



Classe Network.cs (CLIENT)
Codice sorgente - presumibilmente C++

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.Sockets;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8.  
  9. namespace Client
  10. {
  11.     class Network
  12.     {
  13.         public Socket serverSocket;
  14.  
  15.         public void initConnection()
  16.         {
  17.             serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  18.             IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 11000);
  19.  
  20.             while (!serverSocket.Connected)
  21.             {
  22.                 try
  23.                 {
  24.                     serverSocket.Connect(remoteEP);
  25.  
  26.                 }
  27.                 catch (ArgumentNullException ane)
  28.                 {
  29.                     Console.WriteLine(ane.ToString());
  30.                 }
  31.                 catch (SocketException se)
  32.                 {
  33.                     Console.WriteLine(se.ToString());
  34.                 }
  35.                 catch (Exception e)
  36.                 {
  37.                     Console.WriteLine(e.ToString());
  38.                 }
  39.             }
  40.         }
  41.     }
  42. }



In pratica l'output è che il client mi dice connesso mentre il serve mi mostra come output non connesso...non riesco proprio a capire il perchè...... :(

Ultima modifica effettuata da Valcars92 il 22/07/2021 alle 10:03
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6175
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 15:23
Giovedì, 22/07/2021
Perché è l'acceptSocket che devi testare.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Valcars92 (Normal User)
Newbie


Messaggi: 20
Iscritto: 17/07/2021

Segnala al moderatore
Postato alle 16:17
Giovedì, 22/07/2021
ah ok risolto xD...... non ci avevo pensato che avevo passato il socket al liestener......scusatemi per questi post stupidi XD

Ultima modifica effettuata da Valcars92 il 22/07/2021 alle 16:21
PM Quote