Visualizzazione dei risultati da 1 a 5 su 5

Discussione: Socket TCP/IP

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    197

    Socket TCP/IP

    Salve a tutti oggi vi volevo chiedere un paio di cose per indrodurre le Socket nelle mie conoscenze. Dopo aver letto qua e la e visto tantissimi esempi, tutti uguali mi chiedevo come fare a fare un collegamento TCP/IP tra due pc diversi quindi non localhost?. Premetto che di Socket non ci ho mai capito niente.
    L'esempio che ho visto è questo:
    Server.java:
    codice:
    import java.io.*;
    import java.net.*;
    import java.util.*;
     
    public class Server extends Thread
    {
    private ServerSocket Server;
    public static void main(String argv[]) throws Exception
    {
    new Server();
    }
    public Server() throws Exception
    {
    Server = new ServerSocket(20);
    System.out.println("Il Server è in attesa sulla porta 4000.");
    this.start();
    }
    public void run()
    {
    while(true)
    {
    try {
    System.out.println("In attesa di Connessione.");
    Socket client = Server.accept();
    System.out.println("Connessione accettata da: "+
    client.getInetAddress());
    Connect c = new Connect(client);
    }
    catch(Exception e) {}
    }
    }
    }
     
    class Connect extends Thread
    {
    private Socket client = null;
    BufferedReader in = null;
    PrintStream out = null;
    public Connect() {}
    public Connect(Socket clientSocket)
    {
    client = clientSocket;
    try
    {
    in = new BufferedReader(
    new InputStreamReader(client.getInputStream()));
    out = new PrintStream(client.getOutputStream(), true);
    }
    catch(Exception e1)
    {
    try { client.close(); }
    catch(Exception e) { System.out.println(e.getMessage());}
    return;
    }
    this.start();
    }
    public void run()
    {
    try
    {
    out.println("Generico messaggio per il Client");
    out.flush();
    // chiude gli stream e le connessioni
    out.close();
    in.close();
    client.close();
    }
    catch(Exception e) {}
    }
    }
    Client.java

    codice:
    import java.io.*;
    import java.net.*;
    import java.util.*;
     
    public class Client
    {
    public static void main(String argv[])
    {
    BufferedReader in = null;
    PrintStream out = null;
    Socket socket = null;
    String message;
    try
    {
    // open a socket connection
    socket = new Socket("localhost", 20);
    // Apre i canali I/O
    in = new BufferedReader(
    new InputStreamReader(socket.getInputStream()));
    out = new PrintStream(socket.getOutputStream(), true);
    // Legge dal server
    message = in.readLine();
    System.out.print("Messaggio Ricevuto : " + message);
    out.close();
    in.close();
    }
    catch(Exception e) { System.out.println(e.getMessage());}
    }
    }

    un esempio migliore puo essere questo : link

    Grazie mille, oltre a questo sapreste indicarmi delle guide che approfondiscono questo discorso...
    G181

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    C'è una sezione per Java ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2011
    Messaggi
    197
    Gulp e vero riformuli li scusate...
    G181

  4. #4

    Moderazione

    Sposto.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    al posto di
    codice:
    socket = new Socket("localhost", 20);
    devi inserire l'indirizzo IP del serve3r a cui si deve connettere.
    Devi stare attento però che le due macchine "si vedano" cioé se il server è su un IP nattato è difficile che il client possa contattarlo, mentre se stanno su stessa rete o su internet dovresti riuscire a trovarlo (roba sistemistica l'ho fatta 10 anni fà quindi qualche stupidaggine potrei averla scritta)
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.