Studio reti e applicazioni

di il
24 risposte

24 Risposte - Pagina 2

  • Re: Studio reti e applicazioni

    oleg ha scritto:


    1) .. è difficle evolvere all'università.
    2) ... come arriva a quella poszione lavorativa?
    3) ... capire tutto ciò che ci sta dietro e come avviene di fatto la comuniccazione in rete quindi la codifica e la decodific di informazioni. Poi a basso livello in C, creare una comunicazine tra due pc. Per fare ciò, che cosa dovrei studiare specificatamente?


    1) devi un po' prendere ""con le pinze"" quello che viene scritto, ANCHE quello che scrivo io.
    2) NON in 6 mesi, ma in decine d'anni
    3) La ""bibbia"" per il TCP/IP e' (o era):

    https://en.wikipedia.org/wiki/TCP/IP_Illustrate

    Pero' ti stai dimenticando le nuove tecnologie (3G,4G,5G, LTE, ...)
  • Re: Studio reti e applicazioni

    Per vedere il basso livello ("layer 2" o data link, perché il layer 1 fisico lo vedi solo con l'oscilloscopio) ti installi Wireshark, come peraltro indicato nel libro segnalato da migliorabile.
    Peil i client/server TCP e UDP secondo me la cosa più veloce è C# con gli esempi ufficiali (poche linee di codice)
  • Re: Studio reti e applicazioni

    Vi ringrazio tantissimo per l'intervento! La collana proposta da migliorabile è l'unico testo necessario per programmare un'applicazione client-server?
  • Re: Studio reti e applicazioni

    oleg ha scritto:


    Vi ringrazio tantissimo per l'intervento! La collana proposta da migliorabile è l'unico testo necessario per programmare un'applicazione client-server?
  • Re: Studio reti e applicazioni

    Guarda che ci metti poco a fare un'applicazione Client/Server

    - Installi Visual Studio

    - Ti crei il progetto Console Application C# per il server con il codice di esempio ufficiale
    
    using System;
    using System.IO;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    
    class MyTcpListener
    {
        public static void Main()
        {
            TcpListener server = null;
            try
            {
                // Set the TcpListener on port 13000.
                Int32 port = 13000;
                IPAddress localAddr = IPAddress.Parse("127.0.0.1");
    
                // TcpListener server = new TcpListener(port);
                server = new TcpListener(localAddr, port);
    
                // Start listening for client requests.
                server.Start();
    
                // Buffer for reading data
                Byte[] bytes = new Byte[256];
                String data = null;
    
                // Enter the listening loop.
                while (true)
                {
                    Console.Write("Waiting for a connection... ");
    
                    // Perform a blocking call to accept requests.
                    // You could also use server.AcceptSocket() here.
                    TcpClient client = server.AcceptTcpClient();
                    Console.WriteLine("Connected!");
    
                    data = null;
    
                    // Get a stream object for reading and writing
                    NetworkStream stream = client.GetStream();
    
                    int i;
    
                    // Loop to receive all the data sent by the client.
                    while ((i = stream.Read(bytes, 0, bytes.Length)) != 0)
                    {
                        // Translate data bytes to a ASCII string.
                        data = System.Text.Encoding.ASCII.GetString(bytes, 0, i);
                        Console.WriteLine("Received: {0}", data);
    
                        // Process the data sent by the client.
                        data = data.ToUpper();
    
                        byte[] msg = System.Text.Encoding.ASCII.GetBytes(data);
    
                        // Send back a response.
                        stream.Write(msg, 0, msg.Length);
                        Console.WriteLine("Sent: {0}", data);
                    }
    
                    // Shutdown and end connection
                    client.Close();
                }
            }
            catch (SocketException e)
            {
                Console.WriteLine("SocketException: {0}", e);
            }
            finally
            {
                // Stop listening for new clients.
                server.Stop();
            }
    
            Console.WriteLine("\nHit enter to continue...");
            Console.Read();
        }
    }
    
    - Lanci l'eseguibile creato, che rimarrà in attesa di una connessione

    - Ti crei il progetto Console Application C# per il client con il codice di esempio ufficiale e lo lanci
    
    using System;
    using System.IO;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    
    class MyTcpClient
    {
        static void Main(string[] args)
        {
            try
            {
                // Create a TcpClient.
                // Note, for this client to work you need to have a TcpServer
                // connected to the same address as specified by the server, port
                // combination.
                Int32 port = 13000;
                TcpClient client = new TcpClient("127.0.0.1", port);
    
                // Translate the passed message into ASCII and store it as a Byte array.
                Byte[] data = System.Text.Encoding.ASCII.GetBytes("Hello Server!");
    
                // Get a client stream for reading and writing.
                //  Stream stream = client.GetStream();
    
                NetworkStream stream = client.GetStream();
    
                // Send the message to the connected TcpServer.
                stream.Write(data, 0, data.Length);
    
                Console.WriteLine("Sent: {0}", "Hello Server!");
    
                // Receive the TcpServer.response.
    
                // Buffer to store the response bytes.
                data = new Byte[256];
    
                // String to store the response ASCII representation.
                String responseData = String.Empty;
    
                // Read the first batch of the TcpServer response bytes.
                Int32 bytes = stream.Read(data, 0, data.Length);
                responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
                Console.WriteLine("Received: {0}", responseData);
    
                // Close everything.
                stream.Close();
                client.Close();
            }
            catch (ArgumentNullException e)
            {
                Console.WriteLine("ArgumentNullException: {0}", e);
            }
            catch (SocketException e)
            {
                Console.WriteLine("SocketException: {0}", e);
            }
    
            Console.WriteLine("\n Press Enter to continue...");
            Console.Read();
        }
    }
    
    Sul server arriverà il messaggio che mandi dal client

    "127.0.0.1" è l'indirizzo IP che indica il loopback sullo stesso PC. In una rete locale sostituisci 127.0.0.1 con i due indirizzi IP del PC client e del PC server (ad esempio 192.168.0.1 e 192.168.0.2). Il numero di porta è a caso (deve essere la stessa)

    Gli IP te li ricavi con ipconfig da prompt dei comandi oppure dalle configurazioni di rete

    Questo il programma di base da cui partire per poi farti le tue applicazioni. Se non ti piace C# puoi scegliere Java o un altro linguaggio, ma alla fine ci vorrà poco lo stesso
  • Re: Studio reti e applicazioni

  • Re: Studio reti e applicazioni

    Io ti consiglio di fare pratica sulle reti hackerando delle macchine su servizi come Hack the Box. Cosi puoi fare pratica sui programmi che usano la teoria del TCPIP come nmap per dirti riguardo la parte del socket. Trovi anche passo passo delle guide sui canali youtube come sono state hackerate le macchine per esercizio. Vedilo come un laboratorio. Inoltre impari qualcosa circa vulnerabilità e exploit, oppure come scalare i privilegi. Scegli EASY per iniziare.
    un saluto
  • Re: Studio reti e applicazioni

  • Re: Studio reti e applicazioni

    X @+m2+:
    Eri partito con dei contributi interessanti... che bisogno c'è di rispondere ai post di altri utenti con l'emoticon della risata? qualcuno potrebbe sentirsi deriso e non è in questo modo che ci si relaziona in un forum.
  • Re: Studio reti e applicazioni

    Il post rileggendolo lo trovo abbastanza serio. Avrà messo ila sorriso per togliere la troppa serietà. Nessun problema capisco
Devi accedere o registrarti per scrivere nel forum
24 risposte