PDA

View Full Version : تشخیص قطع بودن کابل شبکه در سی شارپ Detect network cable unplugged in cshrp



ras1364
چهارشنبه 11 تیر 1393, 09:43 صبح
با سلام خدمت دوستان محترم
من رو برنامه تحت شبکه دارم کار می کنم که از TCP و از حالت آسنکرون استفاده می کنم (از Begin connect و .... )

می خوام داخل برنامه تشخیص بدم که الان کابل شبکه قطع شده است از کجا باید این رو متوجه بشم چون وقتی که کابل شبکه رو قطع می کنم هنوز استاتوس تی سی پی مقدار True بر می گردونه .

از دوستان خواهشمندم که کمک کنن

elec60
چهارشنبه 11 تیر 1393, 13:52 عصر
using System.Runtime.InteropServices;
class Program
{
[DllImport("sensapi.dll")]
static extern bool IsNetworkAlive(out int flags);

static void Main(string[] args)
{
int flags;
bool connected = IsNetworkAlive(out flags);
}
}




البته اين روش كار شما رو كامل راه نميندازه ولي ميتونين يه تايمر بزارين و مرتب چك كنين. فكر ميكنم يه كلاسي بود كه event اي داشت كه هر وقت شبكه قطع مي شد فاير ميشد. اين كلاس بهتره براي كار شما ولي اسمش دقيق يادم نيست. تو مايه هاي NetworkChange بايد باشه

elec60
چهارشنبه 11 تیر 1393, 14:00 عصر
using System.Net.NetworkInformation;
using System.Windows.Forms;

namespace WindowsFormsApplication24
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
NetworkChange.NetworkAvailabilityChanged += AvailabilityChanged;
}

private void AvailabilityChanged(object sender, NetworkAvailabilityEventArgs e)
{
if (e.IsAvailable)
MessageBox.Show("Network connected!");
else
MessageBox.Show("Network disconnected!");
}
}
}