Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di VsYou
    Registrato dal
    Oct 2007
    Messaggi
    29

    TCP CLIENT/SERVER ma solo in locale..

    Ciao , sono riuscito a fare girare un client e un server via TCP..
    solo che mi funziona solo nella rete locale, il client non riesce a comunicare con il
    server da un computer situato in un'altro posto quindo non della mia rete..


    cosa devo fare x renderlo accessibile da pc al difuori della mia rete??

    vi posto il codice del client e del server che gira in locale quindi con 127.0.0.1


    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------

    /* Server */

    using System;
    using System.Text;
    using System.Net;
    using System.Net.Sockets;

    public class serv {
    public static void Main() {
    try {
    IPAddress ipAd = IPAddress.Parse("127.0.0.1");
    // use local m/c IP address, and

    // use the same in the client


    /* Initializes the Listener */
    TcpListener myList=new TcpListener(ipAd,8001);

    /* Start Listeneting at the specified port */
    myList.Start();

    Console.WriteLine("The server is running at port 8001...");
    Console.WriteLine("The local End point is :" +
    myList.LocalEndpoint );
    Console.WriteLine("Waiting for a connection.....");

    Socket s=myList.AcceptSocket();
    Console.WriteLine("Connection accepted from " + s.RemoteEndPoint);

    byte[] b=new byte[100];
    int k=s.Receive(b);
    Console.WriteLine("Recieved...");
    for (int i=0;i<k;i++)
    Console.Write(Convert.ToChar(b[i]));

    ASCIIEncoding asen=new ASCIIEncoding();
    s.Send(asen.GetBytes("The string was recieved by the server."));
    Console.WriteLine("\nSent Acknowledgement");
    /* clean up */
    s.Close();
    myList.Stop();

    }
    catch (Exception e) {
    Console.WriteLine("Error..... " + e.StackTrace);
    }
    }

    }




    ---------------------------------------------------------------------------
    ---------------------------------------------------------------------------



    /* Client */

    using System;
    using System.IO;
    using System.Net;
    using System.Text;
    using System.Net.Sockets;


    public class clnt {

    public static void Main() {

    try {
    TcpClient tcpclnt = new TcpClient();
    Console.WriteLine("Connecting.....");

    tcpclnt.Connect("127.0.0.1",8001);
    // use the ipaddress as in the server program


    Console.WriteLine("Connected");
    Console.Write("Enter the string to be transmitted : ");

    String str=Console.ReadLine();
    Stream stm = tcpclnt.GetStream();

    ASCIIEncoding asen= new ASCIIEncoding();
    byte[] ba=asen.GetBytes(str);
    Console.WriteLine("Transmitting.....");

    stm.Write(ba,0,ba.Length);

    byte[] bb=new byte[100];
    int k=stm.Read(bb,0,100);

    for (int i=0;i<k;i++)
    Console.Write(Convert.ToChar(bb[i]));

    tcpclnt.Close();
    }

    catch (Exception e) {
    Console.WriteLine("Error..... " + e.StackTrace);
    }
    }

    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Beh ... i motivi possono essere tantissimi ...

    Tanto per cominciare, non vorrai lavorare con l'IP 127.0.0.1 anche tra PC diversi ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di VsYou
    Registrato dal
    Oct 2007
    Messaggi
    29
    forse non hai letto bene il messaggio,
    io ho postato il codice del programma di test che uso in locale.. quindi c'è su 127.0.0.1

    ho provato a comunicare tra 2 computer di 2 case differenti quindi ho messo l'ip esterno

    89.149.xxx.xxx sia nel clien che nel server ma non va..

    tu sai come posso fare o sai indicarmi una guida specifica?

    grazie

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da VsYou
    forse non hai letto bene il messaggio,
    io ho postato il codice del programma di test che uso in locale.. quindi c'è su 127.0.0.1

    ho provato a comunicare tra 2 computer di 2 case differenti quindi ho messo l'ip esterno

    89.149.xxx.xxx sia nel clien che nel server ma non va..
    Ho letto bene il messaggio e la questione dell'ip esterno non l'hai detto e comunque non era cosi' chiaro cosa avessi fatto ...

    tu sai come posso fare
    Non sono un indovino ma posso provare a capire.

    Spiega come e' collegato il sistema dal lato server ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di VsYou
    Registrato dal
    Oct 2007
    Messaggi
    29
    io nel messaggio l'ho spiegato benissimo!!

    Dicendo:
    " vi posto il codice del client e del server che gira in locale quindi con 127.0.0.1 "

    comunque, io ho postato il codice apposta, ora ti metto i commenti cosi capisci...
    tralascia la parte di trasmisisone dei dati a me interessa solo che riesca a connettersi
    da un'altra rete.

    ecco il codice e grazie.

    /* Server */

    using System;
    using System.Text;
    using System.Net;
    using System.Net.Sockets;

    public class serv {
    public static void Main() {
    try {

    //setto l' Ip al quale mi voglio collegare
    IPAddress ipAd = IPAddress.Parse(mioIP);





    // LO metto in ascolto sulla porta 8001
    TcpListener myList=new TcpListener(ipAd,8001);

    myList.Start();

    Console.WriteLine("il server è in ascolto sulla porta 8001...");

    Console.WriteLine("In Attesa di Connettersi.....");

    Socket s=myList.AcceptSocket();
    Console.WriteLine("Connessione Accettata da " + s.RemoteEndPoint);

    // qui è la parte di trasmissione dati ma x ora non ci interessa
    byte[] b=new byte[100];
    int k=s.Receive(b);
    Console.WriteLine("Recevuto...");
    for (int i=0;i<k;i++)
    Console.Write(Convert.ToChar(b[i]));

    ASCIIEncoding asen=new ASCIIEncoding();
    s.Send(asen.GetBytes("The string was recieved by the server."));
    Console.WriteLine("\nSent Acknowledgement");
    /* clean up */
    s.Close();
    myList.Stop();

    }
    catch (Exception e) {
    Console.WriteLine("Error..... " + e.StackTrace);
    }
    }

    }




    ---------------------------------------------------------------------------
    ---------------------------------------------------------------------------



    /* Client */

    using System;
    using System.IO;
    using System.Net;
    using System.Text;
    using System.Net.Sockets;


    public class clnt {

    public static void Main() {

    try {
    TcpClient tcpclnt = new TcpClient();
    Console.WriteLine("Connecting.....");

    //Setto l'IP di Connessione al Server alla Porta Stabilita dal server
    //Questo si connette solo nella rete locale quindi con 127.0.0.1 o 192.168.x.xxx

    tcpclnt.Connect(MioIP,8001);



    Console.WriteLine("Connected");
    Console.Write("Inserisci la parola da trasmettere : ");

    String str=Console.ReadLine();
    Stream stm = tcpclnt.GetStream();

    ASCIIEncoding asen= new ASCIIEncoding();
    byte[] ba=asen.GetBytes(str);
    Console.WriteLine("Transmitting.....");

    stm.Write(ba,0,ba.Length);

    byte[] bb=new byte[100];
    int k=stm.Read(bb,0,100);

    for (int i=0;i<k;i++)
    Console.Write(Convert.ToChar(bb[i]));

    tcpclnt.Close();
    }

    catch (Exception e) {
    Console.WriteLine("Error..... " + e.StackTrace);
    }
    }

    }

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da VsYou
    io nel messaggio l'ho spiegato benissimo!!

    Dicendo:
    " vi posto il codice del client e del server che gira in locale quindi con 127.0.0.1 "
    Hai spiegato che girava in locale, ma non hai precisato di avere provato con un altro IP quando provavi in remoto ... da cio' il sospetto che non avessi provato con un IP diverso da quello locale ...

    Non credo che questo mio punto di vista sia difficile da comprendere ... e non e' neanche tanto importante da starci su per tanti post ...

    ora ti metto i commenti cosi capisci...
    Ti assicuro che non ho bisogno di commenti sul codice per capire e che leggo bene i messaggi ...

    Cosa che non mi pare tu faccia ... non ti ho chiesto codice o commenti ma

    Spiega come e' collegato il sistema dal lato server ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it L'avatar di VsYou
    Registrato dal
    Oct 2007
    Messaggi
    29
    hahaha.. qui ci sono solo finti esperti presuntuosi, che parlano parlano e alla fine non dicono niente, credete sempre che dall'altra parte ci sia un incompetente che sa meno di voi,
    comunque ho appena risolto da solo grazie!

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da VsYou
    hahaha.. qui ci sono solo finti esperti presuntuosi, che parlano parlano e alla fine non dicono niente, credete sempre che dall'altra parte ci sia un incompetente che sa meno di voi,
    comunque ho appena risolto da solo grazie!
    Boh ... tu non hai tutte le rotelle a posto.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da VsYou
    hahaha.. qui ci sono solo finti esperti presuntuosi
    Qui c'è gente che "perde tempo" a leggere i problemi altrui e a fare domande per cercare di fornire la soluzione ad un problema.

    Originariamente inviato da VsYou
    che parlano parlano e alla fine non dicono niente
    Per ottenere delle soluzioni, occorre fornire anche tutti i dettagli del problema: ti è stata posta una domanda specifica più volte in merito a informazioni da fornire, che tu non hai indicato, poi però ti lamenti in modo piccato che non ti venga detto nulla di utile.

    Originariamente inviato da VsYou
    credete sempre che dall'altra parte ci sia un incompetente che sa meno di voi
    Beh, questo è normale, ma non è una questione personale: se qualsiasi persona che scrive qui ha maggiore esperienza, nell'ambito del proprio problema, di chi eventualmente gli risponde, allora vorrebbe dire che non c'è alcun motivo di aprire una discussione, no?

    Voglio dire, nella pratica come faccio a sostenere di saper risolvere meglio un problema che pongo nel forum rispetto alle persone a cui chiedo aiuto? In tal caso, non chiederei aiuto.

    Poi, nel caso specifico - ripeto - ti è stata posta una domanda, e il fatto di accertarsi che magari l'IP non sia lo stesso è solo una richiesta cautelativa, poiché in molti casi il problema si annida in questo tipo di sviste.

    Trarre da questo un insulto personale, è eccessivo ed è senz'altro un fraintendimento, da qui l'inutilità di fondo della tua contestazione, in cui dici che qualcuno ce l'ha con te o ti giudica male senza conoscerti, mentre voleva solamente escludere la prima delle possibilità.

    Originariamente inviato da VsYou
    comunque ho appena risolto da solo grazie!
    Lo spirito del forum in genere suggerisce di scrivere la soluzione, una volta individuata, in modo che altri utenti - individuando la discussione - possano risolvere un problema analogo.
    Se ti va di postarla...

    In verità, il Regolamento di quest'area vorrebbe anche che si indicasse il linguaggio nel titolo, ma per questa volta lo aggiungo io.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  10. #10
    Utente di HTML.it L'avatar di VsYou
    Registrato dal
    Oct 2007
    Messaggi
    29
    è semplicissimo!

    avevo bisogno di un client in grado di connettersi ad un server che non sia della mia rete..
    in che modo non mi interessa , nel modo piu veloce direi..

    il codice che ho postato funziona! MA Solo in LOCALE!

    IL SERVER è IN ASCOLTO SULLA PORTA 8001

    E IL CLIENT DEVE SOLO CONNETTERSI!

    cose mi consigliate?

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.