Oppure

Loading
22/07/21 8:01
Valcars92
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
using System;

namespace Server
{
    class Program
    {
        static void Main(string[] args)
        {
            Network netWork = new Network();

            netWork.initClient();

            if(netWork.clientSocket.Connected == true)
            {
                Console.WriteLine("Connesso");
                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("non connesso");
                Console.ReadLine();
            }

            
        }
    }
}



Classe Network.cs (SERVER)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace Client
{
    class Network
    {
        public Socket clientSocket;

        public void initClient()
        {
            Socket acceptSocket;

            
            clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPEndPoint remoteEP = new IPEndPoint(IPAddress.Any, 11000);

            try
            {                    
                clientSocket.Bind(remoteEP);
                clientSocket.Listen(10);
                Console.WriteLine("In attesa di connessioni......");
                acceptSocket = clientSocket.Accept();
                

            }
            catch(ArgumentNullException ane)
            {
                Console.WriteLine(ane.ToString());
            }catch (SocketException se)
            {
                Console.WriteLine(se.ToString());
            }catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }
            
        }
                
    }
}



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

Program.cs
using System;

namespace Client
{
    class Program
    {
        static void Main(string[] args)
        {
            Network netWork = new Network();

            netWork.initConnection();

            if (netWork.serverSocket.Connected == true)
            {
                Console.WriteLine("Connesso");
                Console.ReadLine();
            }
            else
            {
                Console.WriteLine("non connesso");
                Console.ReadLine();
            }
           
        }
    }
}



Classe Network.cs (CLIENT)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace Client
{
    class Network
    {
        public Socket serverSocket;

        public void initConnection()
        {
            serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            IPEndPoint remoteEP = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 11000);

            while (!serverSocket.Connected)
            {
                try
                {
                    serverSocket.Connect(remoteEP);

                }
                catch (ArgumentNullException ane)
                {
                    Console.WriteLine(ane.ToString());
                }
                catch (SocketException se)
                {
                    Console.WriteLine(se.ToString());
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                }
            }
        }
    }
}



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 22/07/21 8:03
22/07/21 13:23
nessuno
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à.
22/07/21 14:17
Valcars92
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 22/07/21 14:21