मुझे ऐसा कुछ नहीं लगता है जो मुझे बताता है कि मेरे राउटर में एक बंदरगाह खुला है या नहीं। क्या यह भी संभव है?जांचें कि कोई पोर्ट खुला है
कोड मैं अभी वास्तव में काम करने के लिए प्रतीत नहीं होता है ...
private void ScanPort()
{
string hostname = "localhost";
int portno = 9081;
IPAddress ipa = (IPAddress) Dns.GetHostAddresses(hostname)[0];
try
{
System.Net.Sockets.Socket sock =
new System.Net.Sockets.Socket(System.Net.Sockets.AddressFamily.InterNetwork,
System.Net.Sockets.SocketType.Stream,
System.Net.Sockets.ProtocolType.Tcp);
sock.Connect(ipa, portno);
if (sock.Connected == true) // Port is in use and connection is successful
MessageBox.Show("Port is Closed");
sock.Close();
}
catch (System.Net.Sockets.SocketException ex)
{
if (ex.ErrorCode == 10061) // Port is unused and could not establish connection
MessageBox.Show("Port is Open!");
else
MessageBox.Show(ex.Message);
}
}
यह कैसे विफल हो जाता है? क्या परिणाम अपेक्षित नहीं हैं, क्या आपको अपवाद मिल रहा है? – TheEvilPenguin
यदि आपका कोड पोर्ट से कनेक्ट होता है तो यह भी कहना चाहिए कि पोर्ट बंद नहीं है –
@TheEvilPenguin मैं यह कहना चाहता हूं कि मेरा पोर्ट खुला है क्योंकि मैंने इसे अपने राउटर में अग्रेषित किया है, लेकिन यह कनेक्ट करने में विफल रहा है ... –