Từ 1 tới 8 trên tổng số 8 kết quả

Đề tài: PING một địa chỉ Trong C# như thế nào?

  1. #1
    Ngày gia nhập
    09 2008
    Bài viết
    5

    Mặc định PING một địa chỉ Trong C# như thế nào?

    xây dựng môt Solution có tên là ABC, trong đó có 1 thread, thread này thực hiện ping tuần tự 5 địa chỉ (các địa chỉ này tự cho), thời gian delay giữa 2 lần ping liên tiếp là 1 phút.
    Ví dụ:
    Phút 0 ping www.google.com
    Phút 1 ping www.vsic.com
    Phút 2 ping www.yahoo.com
    Phút 3 ping 203.162.0.181
    Phút 4 ping 203.162.4.190
    đến đây quay lại ping địa chỉ đầu tiên
    Phút 5 ping www.google.com
    và cứ thế ping liên tục 5 địa chỉ này. Các pro có giải pháp nào ko giúp đỡ em với!Thank!

  2. #2
    Ngày gia nhập
    07 2006
    Nơi ở
    Hanoi, Vietnam
    Bài viết
    2,750

    Solution nên đặt cho nó một cái tên cụ thể, chẳng hạn như LearnPingExample hay gì đó. Cứ ABC, ABC, là cái gì, may mà Dr biết tiếng Việt tốt chứ không thì cũng không hiểu bạn nói gì cả.

    Bạn xem thử ví dụ ở link sau rồi tùy biến một chút, quả thực Dr không rành C#.
    http://msdn.microsoft.com/en-us/libr...ng(VS.80).aspx
    Email: admin[@]congdongcviet.com | CC to: info[@]congdongcviet.com
    Phone: 0972 89 7667 (Office: 04 6329 2380)
    Yahoo & Skype: dreaminess_world (Vui lòng chỉ rõ mục đích ngay khi liên hệ, cảm ơn!)

    Một người nào đó coi thường ý thức kỷ luật cũng có nghĩa là người đó đã coi thường tương lai số phận của chính bản thân người đó. Những người coi thường ý thức kỷ luật sẽ không bao giờ có được sự thành công trong sự nghiệp!

  3. #3
    Ngày gia nhập
    12 2007
    Bài viết
    117

    xài thử timer coi
    đặt cái timer là 1 phút
    rồi đặt 1 cái biến chạy từ 1 đến 5
    nếu biến bằng 1 thì ping thằng thứ nhất
    2 thì ping thằng thứ 2....
    cứ thế
    nếu quá năm thì quay về 1

  4. #4
    Ngày gia nhập
    09 2008
    Bài viết
    5

    Trích dẫn Nguyên bản được gửi bởi webshot Xem bài viết
    xài thử timer coi
    đặt cái timer là 1 phút
    rồi đặt 1 cái biến chạy từ 1 đến 5
    nếu biến bằng 1 thì ping thằng thứ nhất
    2 thì ping thằng thứ 2....
    cứ thế
    nếu quá năm thì quay về 1
    Ở đây em nghỉ nó liên quan đến Thread nhưng em chưa biết phải làm như thế nào cho nó Ping liên tục mà sử dụng Thread đấy!
    Đây là code của chương trình. Nó vẫn chạy tức là vẫn ping đến được 5 địa chỉ em add vào nhưng nó ko liên tục mà mỗi lần ấn enter nó mới ping đến 1 địa chỉ. Các bác xem rồi giúp em giải quyết thằng này với (Có dùng đến Thread)

    using System;
    using System.Net;
    using System.Net.NetworkInformation;
    using System.Collections;
    using System.Threading;
    namespace PingProc
    {
    class Program
    {
    static void Main(string[] args)
    {
    ArrayList arr = new ArrayList();
    arr.Add("google.com");
    arr.Add("yahoo.com");
    arr.Add("vsic.com");
    arr.Add("203.162.0.181");
    arr.Add("203.162.4.190");
    for (int i = 0; i < 5;i++ )
    {

    Ping("" + arr[i].ToString());
    if (i == 4) i = -1;
    }

    }
    public static int Ping(string hostname)
    {
    Ping ping = new Ping();

    PingReply reply = ping.Send(hostname);
    if (reply.Status == IPStatus.Success)
    {
    Console.WriteLine("Dia chi: {0}", reply.Address);
    Console.WriteLine("Thoi gian ping: {0}", reply.RoundtripTime);
    Console.WriteLine("Thoi gian song cua goi tin: {0}", reply.Options.Ttl);
    Console.WriteLine("khong phan manh: {0}", reply.Options.DontFragment);
    Console.WriteLine("Kich thuoc goi tin: {0}", reply.Buffer.Length);
    Console.WriteLine("Tinh trang: {0}", reply.Status);

    Console.ReadLine();
    return (0);
    }
    else
    {
    Console.WriteLine("Error");
    Console.WriteLine("Status: {0}", reply.Status);
    Console.ReadLine();
    return (1);
    }
    }
    }
    }

  5. #5
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi zayzet Xem bài viết
    Ở đây em nghỉ nó liên quan đến Thread nhưng em chưa biết phải làm như thế nào cho nó Ping liên tục mà sử dụng Thread đấy!
    Đây là code của chương trình. Nó vẫn chạy tức là vẫn ping đến được 5 địa chỉ em add vào nhưng nó ko liên tục mà mỗi lần ấn enter nó mới ping đến 1 địa chỉ. Các bác xem rồi giúp em giải quyết thằng này với (Có dùng đến Thread)

    using System;
    using System.Net;
    using System.Net.NetworkInformation;
    using System.Collections;
    using System.Threading;
    namespace PingProc
    {
    class Program
    {
    static void Main(string[] args)
    {
    ArrayList arr = new ArrayList();
    arr.Add("google.com");
    arr.Add("yahoo.com");
    arr.Add("vsic.com");
    arr.Add("203.162.0.181");
    arr.Add("203.162.4.190");
    for (int i = 0; i < 5;i++ )
    {

    Ping("" + arr[i].ToString());
    if (i == 4) i = -1;
    }

    }
    public static int Ping(string hostname)
    {
    Ping ping = new Ping();

    PingReply reply = ping.Send(hostname);
    if (reply.Status == IPStatus.Success)
    {
    Console.WriteLine("Dia chi: {0}", reply.Address);
    Console.WriteLine("Thoi gian ping: {0}", reply.RoundtripTime);
    Console.WriteLine("Thoi gian song cua goi tin: {0}", reply.Options.Ttl);
    Console.WriteLine("khong phan manh: {0}", reply.Options.DontFragment);
    Console.WriteLine("Kich thuoc goi tin: {0}", reply.Buffer.Length);
    Console.WriteLine("Tinh trang: {0}", reply.Status);

    Console.ReadLine();
    return (0);
    }
    else
    {
    Console.WriteLine("Error");
    Console.WriteLine("Status: {0}", reply.Status);
    Console.ReadLine();
    return (1);
    }
    }
    }
    }
    chả thấy đoạn nào trong code của cậu gọi là sử dụng Thread cả (trừ cái dòng gọi thư viện...)

    Viết tách hẳn ra thành 1 class riêng:
    Visual C# Code:
    1. class Pinger  {
    2.     Ping ping;
    3.    
    4.     // construct + properties o day
    5.     ...
    6.    
    7.     // tao mot thread rieng khi tien hanh ping
    8.     // dat diem Entry Point cua thread
    9.     public void run() {
    10.         // thuc hien Ping o day, ping.status, PingEntry ....
    11.     }
    12. }
    13.  
    14. class Program {
    15.     public static void Main() {
    16.         // tao 1 object cho class Pinger, vi du
    17.         Pinger pinger = new Pinger(); // constructor tuong ung o tren khi tao
    18.         Thread pinger_thread = new Thread(new ThreadStart(pinger.run));
    19.        
    20.         // bat dau cho Thread cua pinger chay
    21.         pinger.Start();
    22.        
    23.         // tao timer
    24.         Timer timer = new Timer();
    25.         // thiet lap Hook vao event dem thoi gian Elapsed
    26.         timer.Elapsed += new ElapsedEventHandler(OnTimeCountEvent);
    27.         // thiet lap thuoc tinh dem: 60 giay cho 1 thread:
    28.         timer.Interval = 60000;
    29.         timer.Enabled = true;
    30.     }
    31.     public static void OnTimeCountEvent(object Source, ElapsedEventArgs e) {
    32.         // blah blah ..
    33.     }
    34. }

    Code trên là tớ nháp đại thôi, thực tế để chính xác về time hơn thì có thể tạo hẳn 1 thread timer được riêng để đếm.
    None!

  6. #6
    Ngày gia nhập
    09 2008
    Bài viết
    5

    Mặc định PING một địa chỉ Trong C# như thế nào?

    Thank cậu! Ý mình là làm sao thêm vào cái thread để cho nó ping liên tục thôi.Hì hì! Mình sẽ test thử đoạn code của cậu xem sao!

  7. #7
    Ngày gia nhập
    09 2006
    Nơi ở
    /usr/share/.hack@
    Bài viết
    1,433

    Trích dẫn Nguyên bản được gửi bởi zayzet Xem bài viết
    Thank cậu! Ý mình là làm sao thêm vào cái thread để cho nó ping liên tục thôi.Hì hì! Mình sẽ test thử đoạn code của cậu xem sao!
    Visual C# Code:
    1. while(1) {
    2.     // ping gi thi` tha hết vào đây
    3. }

    None!

  8. #8
    Ngày gia nhập
    10 2007
    Nơi ở
    HCMUNS
    Bài viết
    459

    Ặc ặc, toàn dân đại gia. Mấy bác dùng dao mổ trâu giết ruồi à ????

    Bài này xài Timer chạy cái rụp ~,~
    Keep moving forward!

    ... Retired ...

Các đề tài tương tự

  1. Tấn Công 1 Server Bằng Lệnh ping mạng
    Gửi bởi Cpro trong diễn đàn Windows API, Hooking, xử lý Windows Message
    Trả lời: 6
    Bài viết cuối: 06-11-2013, 10:35 PM
  2. Cách thực thi lệnh cmd và cách tạo form PING trong C#?
    Gửi bởi pigwigleon trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 22-06-2013, 02:00 PM
  3. Game Tạo Form trong suốt trong C# tựa game Thần Võ như thế nào?
    Gửi bởi tocvang_pro trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 5
    Bài viết cuối: 21-09-2011, 04:21 PM
  4. Sử lí như thế nào khi nhập rất chậm trong trình xoạn thảo trong devC
    Gửi bởi toansvcn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 13
    Bài viết cuối: 23-05-2011, 10:04 PM
  5. Tấn Công 1 Server Bằng Lệnh ping mạng
    Gửi bởi Cpro trong diễn đàn Thắc mắc lập trình Visual C++
    Trả lời: 1
    Bài viết cuối: 18-04-2009, 02:15 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn