Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

ΧρήσηTcpClient

Îåêßíçóå áðü ôï ìÝëïò pan. Τελευταία δημοσίευση από το μέλος pan στις 04-09-2007, 11:18. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  30-08-2007, 16:09 34620

    ΧρήσηTcpClient

    Καλησπέρα

    Θέλω να συνδεθώ μέσω telnet σε έναν server και να στείλω κάποιες εντολές στον server και να "πιάσω" αυτά που θα μου επιστρέψει.
    Από το googling (http://www.codeproject.com/cs/internet/MinimalisticTelnet.asp) που έκανα βρήκα ότι συνδέομαι μέσω TcpClient,
    το έκανα και συνδέθηκα κανονικά.

    Στέλνω τις εντολές δεν μου χτυπάει κάποιο error ή exception, δείχνει ότι το πρόγραμμα λειτουργεί κανονικά αλλά όταν συνδέομαι στον server για να δω αν έχουν γίνει οι αλλαγές, τίποτα δεν έχει γίνει.
    Οι εντολές παίζουν κανονικά, διότι όταν συνδέομαι με telnet από cmd των windows και δίνω τις εντολές κανονικά λειτουργούν.

    Ερώτηση:
    1) Είμαι στον σωστό δρόμο χρησιμοποιώντας tcpclient και Stream objects ή πρέπει να χρησιμοποιήσω κάτι άλλο ;
    2) και αν είμαι, πώς πρέπει να χρησιμοποιήσω για να στείλω τις εντολές και να διαβάσω το αποτέλεσμα ?

    Τώρα το δοκιμάζω σαν console application απλά ο στόχος είναι η εφαρμογή να τρέξει μέσω asp.net

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    NetworkStream netwStream; StreamReader StreamREADER; StreamWriter streamWblock; StreamWriter streamWunblock;
    TcpClient tclz;
    try
    {
    string blockStr = "BLOCK SERVER";
    string unblockStr = "unBLOCK SERVER";
          
    tclz = new TcpClient();
    tclz.Connect("20.20.20.20", 14522);

    if (tclz.Connected == true)
    {
    Console.WriteLine("............Connected............."); // <-- typonete kanonika mexri edw
    netwStream = tclz.GetStream();
    streamWblock = new StreamWriter(netwStream);
    streamWunblock = new StreamWriter(netwStream);
    StreamREADER = new StreamReader(netwStream);
    streamWblock.WriteLine(blockStr); // <-- deixnei oti ekteleitai alla oxi stin pragmatikotita

               if (netwStream.DataAvailable)
               {
               string strIncomingData = StreamREADERx.ReadLine();
               Console.WriteLine(strIncomingData); // <-- den moy typwnei tipota, enw apo telnet h entoli epistrefei panta "OK"
               }
               //streamWblock.WriteLine(unblockStr);

    } //end if is connected

                tclz.Close();
    }
    catch (Exception errs)
    {
    throw errs;
    }

  •  31-08-2007, 09:45 34628 σε απάντηση της 34620

    Απ: ΧρήσηTcpClient

    Ίσως σου φανεί χρήσιμο αυτό  http://dotnettelnet.sourceforge.net/
    Ρίξε μία ματιά .


  •  04-09-2007, 11:18 34689 σε απάντηση της 34620

    Απ: Χρήση TcpClient

    Βρέθηκε η λύση. Έπρεπε να προσθέσω στα strings  το Environment.Newline. Διότι χωρίς αυτό έστελνε μεν την εντολή αλλά χωρίς να κάνει το ENTER.

    string blockStr = "BLOCK SERVER" + Environment.Newline;
    string unblockStr = "unBLOCK SERVER" + Environment.Newline;

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems