TCP/IP port testen ob connection möglich ist



  • Hallo,
    ich muss ein Programm schreiben welches ein TCP/IP port an einem Server testet ob dort eine Connection möglich ist.
    Bisher habe ich folgendes:

    Socket* s = 0;
    IPHostEntry* iphe = 0;
    iphe = Dns::Resolve("localhost");
    IPAddress* addr = new IPAddress(1);
    addr = addr->Parse("127.0.0.1");
    IPEndPoint* ipe = new IPEndPoint(addr, 5993);
    Socket* tmpS;
    try
    {
    // versuche zum GoldSync eine verbindung aufzubauen.
    tmpS = new Socket(ipe->AddressFamily, SocketType::Stream, ProtocolType::Tcp);
    tmpS->Connect(ipe);
    Thread::Sleep(6000);
    if (tmpS->Connected == false)
    {

    throw;
    }
    tmpS->Shutdown;
    tmpS->Close;
    }
    catch(...)
    ....

    Das funktioniert auch wenn überhaupt keine verbindung aufgebaut werden kann.
    Doch es kommt auch hin und wieder mal vor das sich diese Verbindung wie folgt verhält:
    telnet 192.168.10.251 5993
    Trying 192.168.10.251...
    Connected to 192.168.10.251.
    Escape character is '^]'.
    Connection closed by foreign host.

    Und das wird von dem code oben nicht erkannt.
    Wie stelle ich das an das er auch diese ausnahme erkennt?



  • hi,
    di verbindung war ja kurzzeitig da.
    du könntest vielleicht was hinschicken z.b. ein AYT:
    http://www.scit.wlv.ac.uk/rfc/rfc8xx/RFC854.html
    und gucken ob dich der server dann rausschmeisst...
    :xmas2:



  • dh. du meinst das der mein socket nicht rausschmeist weil ich nichts sende und telnet direkt was sendet und deshalb rausgeschmissen wird?
    Ich hatte es auch schon über Poll probiert doch das hat auch nichts gebracht.
    Wie mache ich das denn mit dem AYT (hab bisher noch nie mit socket was gemacht)?



  • jingojango schrieb:

    Wie mache ich das denn mit dem AYT (hab bisher noch nie mit socket was gemacht)?

    steht doch da. ein zeichen (char)246 hinschicken...


Log in to reply