Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 22382|Απάντηση: 7

[Φόρμα Win] 【Υψηλής ταχύτητας】 Σαρωτής πολλαπλών νημάτων θύρας τμήματος διεύθυνσης διεύθυνσης IP C#

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 11/12/2015 3:17:37 μ.μ. | | | |

Τα τελευταία χρόνια, οι συσκευές ανάγνωσης RFID, οι έξυπνες οικιακές πύλες, οι αισθητήρες θερμοκρασίας και υγρασίας χρησιμοποιούνται συχνά στην εργασία, γενικά υπάρχουν σειριακές θύρες και θύρες δικτύου, για επιτόπιους λόγους, οι σειριακές θύρες χρησιμοποιούνται γενικά λιγότερο, οι περισσότερες από αυτές χρησιμοποιούν θύρες δικτύου. Η μέθοδος σύνδεσης είναι η διεύθυνση IP και η θύρα, ορισμένες συσκευές διαθέτουν λογισμικό αναζήτησης, άλλες όχι. Η συχνή χρήση του περιβάλλοντος δοκιμής και του ιστότοπου προκαλεί αναπόφευκτα σύγχυση. Ένας πρόσφατος αναγνώστης RFID χρησιμοποιεί μια μονάδα θύρας Ethernet ZN-100 σε σειριακή θύρα και το λογισμικό αναζήτησης (ZNetCom Utility) είναι καλό και η ταχύτητα αναζήτησης είναι επίσης πολύ γρήγορη. (Όπως φαίνεται παρακάτω)

Σκέφτηκα να αναπτύξω ένα μόνος μου, πρώτα απ 'όλα, το τμήμα IP και η θύρα μπορούν να προσαρμοστούν, κάτι που είναι εύκολο στη χρήση. Η ταχύτητα αναζήτησης πρέπει να είναι γρήγορη και βιάζομαι να χρησιμοποιήσω multithreading και ασύγχρονη. Ας βγάλουμε πρώτα μια φωτογραφία.



  1. #region 扫描方法

  2.         public void Scan(string m_host, int m_port)
  3.         {
  4.             //我们直接使用比较高级的TcpClient类
  5.             TcpClient tc = new TcpClient();
  6.             //设置超时时间
  7.             tc.SendTimeout = tc.ReceiveTimeout = 2000;

  8.             try
  9.             {
  10.                 //同步方法
  11.                   //IPAddress ip = IPAddress.Parse(host);
  12.                 //IPEndPoint IPendp = new IPEndPoint(ip, port);
  13.                 //tc.Connect(IPendp);

  14.                 //异步方法
  15.                 IAsyncResult oAsyncResult = tc.BeginConnect(m_host, m_port, null, null);
  16.                 oAsyncResult.AsyncWaitHandle.WaitOne(1000, true);//1000为超时时间

  17.                 if (tc.Connected)
  18.                 {
  19.                     //如果连接上,证明此端口为开放状态
  20.                        UpdateListBox(listBox1, m_host + ":" + m_port.ToString());
  21.                 }
  22.             }
  23.             catch (System.Net.Sockets.SocketException e)
  24.             {
  25.                 //容错处理
  26.                 //MessageBox.Show("Port {0} is closed", host.ToString());
  27.                 //Console.WriteLine(e.Message);
  28.             }
  29.             finally
  30.             {              
  31.                 tc.Close();
  32.                 tc = null;               
  33.                 scannedCount++;
  34.                 runningThreadCount--;

  35.             }
  36.         }
  37.         #endregion
  38. 如果使用同步方法会有明显的卡顿,用户体验不好;使用异步感觉很流畅,很爽,自己可以注释代码亲测。
Αντιγραφή κώδικα

Ο πηγαίος κώδικας συμβάλλει: IP端口扫描.rar (31.73 KB, Αριθμός λήψεων: 12)






Προηγούμενος:Ποια πρωτόκολλα βασίζονται σε TCP και ποια σε UDP;
Επόμενος:Δείκτης κενού Basic
Δημοσιεύτηκε στις 11/12/2015 3:51:53 μ.μ. |
Δημοσιεύτηκε στις 11/12/2015 6:00:48 μ.μ. |
Προτροπή:Η δημοσίευση μπλοκαρίστηκε από έναν διαχειριστή ή συντονιστή
Δημοσιεύτηκε στις 22/5/2016 3:13:38 μ.μ. |
Είναι πολύ καλό
Δημοσιεύτηκε στις 20/8/2016 4:35:02 μ.μ. |
Αποδεικνύεται ότι το λογισμικό διακομιστή μεσολάβησης σάρωσης του κατόχου είναι επίσης βελτιωμένο σε σχέση με αυτόν τον πηγαίο κώδικα. Ευχαριστώ!
Δημοσιεύτηκε στις 21/8/2016 1:11:18 μ.μ. |
Γιατί δεν μπορεί να λειτουργήσει αυτό;
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 3/12/2025 11:58:07 π.μ. |
Δοκιμή συνδεσιμότητας θύρας TCP



 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 3/12/2025 11:58:49 π.μ. |
Το .NET/C# ελέγχει εάν υπάρχει διαθέσιμη θύρα TCP
https://www.itsvse.com/thread-10721-1-1.html
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com