ورود

View Full Version : بررسی ارتباط با اینترنت



disiba
شنبه 24 مرداد 1394, 20:17 عصر
سلام
میخوام ارتباط با اینترنت رو در برنامه چک کنم . البته فانکشن ارتباط با اینترنت رو میدونم . ولی منظورم این است که هر وقت اینترنت قطع و یا وصل بشه پیغام مناسب بدون دخالت کاربر ظاهر بشه .ایا باید از لوپ استفاده کنم یا راه دیگری هم هست ؟

Mask
شنبه 24 مرداد 1394, 22:00 عصر
توابعی که برای این کار موجوده،حتی هوک کردن برودکستها، نتیجه صدرصدی و بدون عیبی حاصل نمیکنه.
تنها راهکاری که بنده بهش رسیدم، پینگ کردن سرورهای 4.2.2.4 و 8.8.8.8 در فواصل زمانی کوتاه.

disiba
یک شنبه 25 مرداد 1394, 16:54 عصر
منظور من اینه که از چه رویدادی استفاده کنم تا تغییر وضعیت ارتباط با اینترنت اتوماتیک روی صفحه نشان داد

Mask
یک شنبه 25 مرداد 1394, 18:39 عصر
منظور من اینه که از چه رویدادی استفاده کنم تا تغییر وضعیت ارتباط با اینترنت اتوماتیک روی صفحه نشان داد
رویداد خاصی موجود نیست. باید در یک ترد جدا هر چند ثانیه پینگ کنید و نتیجه رو به مین ترد ارسال کنید.

disiba
یک شنبه 25 مرداد 1394, 20:17 عصر
اگه هنگام ایجاد فرم (Form create) یک لوپ بنویسم و ارتباط رو چک کنم ، مشکلی پیش نمیاد ؟

BORHAN TEC
یک شنبه 25 مرداد 1394, 20:28 عصر
اگه هنگام ایجاد فرم (Form create) یک لوپ بنویسم و ارتباط رو چک کنم ، مشکلی پیش نمیاد ؟
همش مشکله، بررسی ارتباط با اینترنت بهتره که فقط و فقط با یک ترد جداگانه باشه و لا غیر :چشمک:

h_mohamadi
چهارشنبه 11 شهریور 1394, 10:01 صبح
به نظر من هم ترد بهترین روش است

یوسف زالی
چهارشنبه 11 شهریور 1394, 11:03 صبح
بهترین روش ساخت یک کامپوننت برای این کاره.
این کامپوننت می تونه رویداد هایی مثل قطع، وصل، و چیزای دیگه هم داشته باشه.
نوشتنش خیلی مشکل نیست. فقط یکم مهارت می خواد و وقت.

یوسف زالی
چهارشنبه 11 شهریور 1394, 15:58 عصر
دارم براش یک کامپوننت کوچیک می نویسم، تموم بشه می گذارم همینجا.

یوسف زالی
پنج شنبه 12 شهریور 1394, 00:49 صبح
کار اولیه این کامپوننت به پایان رسید.
البته خیلی سریع نوشتم، ممکنه چیزایی رو از قلم انداخته باشم.
تست روی دلفی 7
دوستان رو نسخ خودتون تست کنید، ایرادات رو بگید تا رفع کنم.
در پایان کار این می تونه آموزش خوبی برای نوشتن کامپوننت / ترد باشه.

پراپرتی ها
------------
Enabled = خاموش روشن کردن کامپوننت

Mode = برای تست اتصال می تونید یک آی پی رو با حالت پینگ تست کنید یا این که یک سایت رو لود کنید.
این خاصیت دست شما رو برای انتخاب بین این دو حالت باز می گذاره.

Period = دوره های زمانی چک کردن اتصال

Target = جایی که می خواهید باهاش نت رو چک کنید، اگر مود روی پینگ باشه آی پی ست کنید، مثلا 4.2.2.4 و اگر مود روی باز کزدن URL هست، مثلا بگذارید Http://www.NikanMehr.com

رویداد ها
----------
OnConnect = هر زمان از حالت دی سی به حالت اتصال رفتیم، این رویداد یک بار کال می شه
OnDisconnect = هر زمان از حالت اتصال قطع شدیم، این رویداد یک بار کال می شه
OnPeriod = در بازه های زمانی مشخص شده کال می شه، و زمان تخمینی پاسخ تارگت رو در متغیر Time به شما می ده، اگر این زمان 1- باشه یعنی نتونسته کانکت بشه.

امیدوارم لذت ببرید.

Mask
پنج شنبه 12 شهریور 1394, 13:03 عصر
ممنون از داش یوسف عزیز. بابت زحمتی که کشیدند.
من با اجازتون برای نسخه دلفی XE تغییراتی دادم و به همراه یک سمپل ضمیمه کردم.
در ضمن، پیرو زحمت دوست عزیزم: این کامپوننت به خاطر شرایطی که ممکنه کاربر داشته باشه، در دو حالت ping و OpenUrl کار میکنه.
مد نظر داشته باشید، اگه در شبکه ای هستید که شرایط عادی هست، حتما از متد پینگ استفاده کنید، به خاطر سرعت و دقت بیشتری که داره ، ولی اگر در شبکه ای که مثلا اینترنت از طریق پروکسی داره تامین میشه و یا... هستید از متد OpenUrl استفاده کنید. علت این امر اینه که در متد OpenUrl هم زمان بشتری مصرف میشه و هم اینکه در شرایطی ممکنه اون Url کش شده باشه و زمان بیشتری برده بشه تا به نتیجه حقیقی رسید.
با تشکر از مهندس زالی عزیز.

arman.m.80
پنج شنبه 19 شهریور 1394, 09:19 صبح
دوست عزیز شما میتوانید به جای استفاده از کامپوننت دستور چک کردن اتصال به اینترنت را در یک تایمر بگذارید با این روش متلا هر 10 ثانیه یک بار میتوانید اتصال را چک کنید .

یوسف زالی
جمعه 20 شهریور 1394, 13:13 عصر
دوست گرامی، واقعا متوجه پست ها شدید و این نظر رو دادید؟
:متفکر:
اون دستور چک کردن به نظرتون زمان بر نیست؟
به نظرتون استفاده ازش در ترد اصلی برنامه رو فریز نمی کنه؟
لطفا کامل بحث رو بخونید بعد نظر بدید.

arman.m.80
جمعه 20 شهریور 1394, 15:28 عصر
دوست عزیز حرف شما درست است ممکنه کمی وقت برنامه را بگیره ولی من برای مثال گفتم هر 10 ثانیه یک بار ولی اگه توی برنامه وقتی فرم نمایش داده میشه اتصال به اینترنت چک بشه و در خود برنامه هم هر 2 دقیقه یک بار چک بشه خیلی هم خوب کار میکنه. :لبخندساده:
از کامپوننت هم میشه استفاده کرد و سریع تر هم هست ولی این راه بدون استفاده از کامپوننت خاصی باز هم کار میکنه.

Mask
شنبه 21 شهریور 1394, 00:10 صبح
دوست عزیز حرف شما درست است ممکنه کمی وقت برنامه را بگیره ولی من برای مثال گفتم هر 10 ثانیه یک بار ولی اگه توی برنامه وقتی فرم نمایش داده میشه اتصال به اینترنت چک بشه و در خود برنامه هم هر 2 دقیقه یک بار چک بشه خیلی هم خوب کار میکنه. :لبخندساده:
از کامپوننت هم میشه استفاده کرد و سریع تر هم هست ولی این راه بدون استفاده از کامپوننت خاصی باز هم کار میکنه.
شوما خیلی خودتونا اذیت نکونید.براتون ضرر داره.
اکبند تحویل بدید.