رفتن به مطلب
  • 0

بررسی اتصال حقیقی دستگاه به اینترنت


fun_code

سوال

با سلام و عرض ادب

مشکلی که بسیاری از ماها داریم و میشه گفت بیخیالش شدیم... بررسی اتصال حقیقی دستگاه به اینترنت است...

یعنی این کافی نیست که بررسی کنیم و ببینیم دستگاه به وای فای یا اینترنت سیم کارت متصیه یا نه...

باید بفهمیم که اینترنت هم معتبره یا نه ؟

برای اینکار بهترین راه رو در لینک زیر مطرح کردن اما مشکل اساسی اون اینه که گاهی اوقات طول میکشه و تا دریافت نتیجه ping برنامه قفل میکنه...

Check Internet connection | B4X Community - Android, iOS, desktop, server and IoT programming tools

 

شما راه حل مناسبی برای این مورد ندارید که در سریعترین زمان ممکن بفهمیم اینترنت معتبره یا نه ؟

 

با سپاس

لینک ارسال
به اشتراک گذاری در سایت های دیگر

11 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

آره ولی خب من راه دیگه ای نتونستم پیدا کنم. اگه استفاده از برنامتون زیاد نیست میتونین از دانلود یه فایل چند بایتی یا کیلوبایتی هم متوجه بشین

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 44 دقیقه قبل، ctrain گفته است :

آره ولی خب من راه دیگه ای نتونستم پیدا کنم. اگه استفاده از برنامتون زیاد نیست میتونین از دانلود یه فایل چند بایتی یا کیلوبایتی هم متوجه بشین

 

در 13 ساعت قبل، softir گفته است :

کاری نداره عزیزم

شما یه تایمر یا یه تایم مشخص کن که اگر درخواستت رو به اینترنت فرستادی و جوابی برنگشت اعلام کنه که .... آره نت نداره

مشکل اینه که میخوام در بازی آنلاین این مورد رو چک کنم ، یعنی هر 10 ثانیه باید وضعیت نت چک بشه که اگر ارتباط قطع شده در فرصت محدودی که براش قرار داده شده به نت و بازی برگرده...

در غیر این صورت بازنده بازی است.

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

به نظرم باید روش بهتری هم باشه... که متاسفانه پیدا کردنش سخته...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

عزیز برای مورد شما باید حتما سوکت بزنید.

با وب سرویس که نمیتونید بازی آنلاین بسازید. شما باید لحظه ای قطع و وصل شدنو بفهمید نه 10 ثانیه. واسه همچین کاری فقط سوکت بهینه است

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 19 ساعت قبل، محمدرضا شاهپیری گفته است :

عزیز برای مورد شما باید حتما سوکت بزنید.

با وب سرویس که نمیتونید بازی آنلاین بسازید. شما باید لحظه ای قطع و وصل شدنو بفهمید نه 10 ثانیه. واسه همچین کاری فقط سوکت بهینه است

سلام

البته یکسری از بازی های آنلاینی که میبینید با وب سرویس نوشته شدن... بازی آنلاین ما هم شبیه به 4 (بازی دو نفره نوبتی) هست ، نه مثل بازی های آنلاین فوتبال ...

دقیقا ما سرور بازی رو با سوکت ساختیم ، منتهی این مورد زمانی رخ میده که کلاینت (گوشی اندروید) اینترنتش تمام میشه و رویداد قطعی سوکت رخ نمیده و اینترنت هم تمام شده...

راهی که داشت این بود که هر از 10 ثانیه به سرور پیام الکی بدیم و اونم در جواب اون پیام یه پیام بده...

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

اما سازنده سرور بازی گفت این روش به سرور زیادی و الکی فشار میاره و این مورد باید در کلاینت نوشته بشه و الکی به سمت سرور نکشونیمش...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 16 ساعت قبل، fun_code گفته است :

با سلام و عرض ادب

مشکلی که بسیاری از ماها داریم و میشه گفت بیخیالش شدیم... بررسی اتصال حقیقی دستگاه به اینترنت است...

یعنی این کافی نیست که بررسی کنیم و ببینیم دستگاه به وای فای یا اینترنت سیم کارت متصیه یا نه...

باید بفهمیم که اینترنت هم معتبره یا نه ؟

برای اینکار بهترین راه رو در لینک زیر مطرح کردن اما مشکل اساسی اون اینه که گاهی اوقات طول میکشه و تا دریافت نتیجه ping برنامه قفل میکنه...

Check Internet connection | B4X Community - Android, iOS, desktop, server and IoT programming tools

 

شما راه حل مناسبی برای این مورد ندارید که در سریعترین زمان ممکن بفهمیم اینترنت معتبره یا نه ؟

 

با سپاس


Public Sub CheckInternet As Boolean
	Private Phone As Phone
	If (Phone.GetDataState = "CONNECTED") Or (Phone.GetSettings ("wifi_on") = 1) Then
		Return True
	Else
		Return False
	End If
End Sub

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 17 ساعت قبل، softir گفته است :


Public Sub CheckInternet As Boolean
	Private Phone As Phone
	If (Phone.GetDataState = "CONNECTED") Or (Phone.GetSettings ("wifi_on") = 1) Then
		Return True
	Else
		Return False
	End If
End Sub

 

سلام دوست عزیز ،

ببینید ، کد شما وضعیت اتصال به وای فای و اینترنت رو بررسی میکنه ، نه وضعیت صحت عملکرد اینترنت رو...

شما فرض کنید با وای فای به مودم متصل شدید اما حجم اینترنت شما تمام شده... با این وضعیت کد بالا مقدار true رو برمیگردونه اما حقیقتا اینترنت تمام شده و قابل استفاده نیست.

اینترنت سیم کارت هم همین روند رو داره... ممکنه اینترنت دیتا روشن و متصل باشه اما حجم بسته اینترنت تمام شده باشه...

دنبال کدی هستم که بتونیم ببینیم واقعا نت قابل استفاده است یا نه ؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 6 ساعت قبل، fun_code گفته است :

دنبال کدی هستم که بتونیم ببینیم واقعا نت قابل استفاده است یا نه ؟

کاری نداره عزیزم

شما یه تایمر یا یه تایم مشخص کن که اگر درخواستت رو به اینترنت فرستادی و جوابی برنگشت اعلام کنه که .... آره نت نداره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

روشي كه خود گوگل براي چك كردن اينترنت پيشنهاد كرده

Sub CheckConnection As Boolean
    Dim r As Reflector
   
    r.Target = r.GetContext
    r.Target = r.RunMethod2("getSystemService", "connectivity", "java.lang.String")
    r.Target = r.RunMethod("getActiveNetworkInfo")
   
    If r.Target <> Null Then
        Return r.RunMethod("isConnected")
    End If
   
    Return False
End Sub

نياز به پرميشن يا مجوز android.permission.ACCESS_NETWORK_STATE و کتابخونه Reflection داره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 40 دقیقه قبل، AMiN.M7892 گفته است :

روشي كه خود گوگل براي چك كردن اينترنت پيشنهاد كرده


Sub CheckConnection As Boolean
    Dim r As Reflector
   
    r.Target = r.GetContext
    r.Target = r.RunMethod2("getSystemService", "connectivity", "java.lang.String")
    r.Target = r.RunMethod("getActiveNetworkInfo")
   
    If r.Target <> Null Then
        Return r.RunMethod("isConnected")
    End If
   
    Return False
End Sub

نياز به پرميشن يا مجوز android.permission.ACCESS_NETWORK_STATE و کتابخونه Reflection داره

سلام اگه اینترنت هم نباشه true بر میگردونه بدرد نمی خوره 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

پس با این وجود شما میتونید مثل من یک فایل php ساده بنویسید که مقداری رو از طریق post دریافت میکنه. وقتی اون مقدار مشخص شده دریافت شد کلمه ی motassel رو برمیگردونه. شما اینجا اول با کدهایی که دوستان در بالا دادن اینترنت را بطور کلی چک میکنید و در مرحله ی دوم که همون پست کردن میشه میبینید آیا کلمه ی motassel برگشت داده شده یا نه؟ اینجا کاملا از حجم هم مطمئن میشین

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱ ساعت قبل، ctrain گفته است :

پس با این وجود شما میتونید مثل من یک فایل php ساده بنویسید که مقداری رو از طریق post دریافت میکنه. وقتی اون مقدار مشخص شده دریافت شد کلمه ی motassel رو برمیگردونه. شما اینجا اول با کدهایی که دوستان در بالا دادن اینترنت را بطور کلی چک میکنید و در مرحله ی دوم که همون پست کردن میشه میبینید آیا کلمه ی motassel برگشت داده شده یا نه؟ اینجا کاملا از حجم هم مطمئن میشین

من انجام دادم خیلی طول میکشه تقربیا 5 ثانیه تا 1 دیقه  بستگی به اینترنت داره

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...