آموزش Ping کردن در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش برنامه نویسی اندروید به آموزش Ping کردن در برنامه نویسی اندروید می پردازیم از این آموزش برای به دست آوردن ping مورد استفاده قرار می گیرد و همینطور به بررسی ping چیست می پردازیم با ما همراه باشید.
Ping چیست ؟
پینگ در حقیقت یک نوع دستور می باشد که خبر از ارتباط بین دو نقطه می دهد. به زبان ساده تر می تواند این دو نقطه بین یک کامپیوتر و سایت باشد و یا بین دو کامپیوتر باشد. همچنین پینگ در درجه دوم میزان سرعت ارسال بسته های اطلاعات از کامپیوتر اول به کامپیوتر دوم و سرعت و زمان برگشت بسته ها از کامپیوتر دوم به اول را اندازه گیری میکند.حال شاید بگویید این چه ربطی به اینترنت و سرعت و سرویس دهی و کیفیت آن دارد؟ باید بدانیم که ما در اینترنت دائما در حال ارسال و دریافت بسته های اطلاعات مختلف هستیم. هرچه قدر این سرعت بیشتر باشد مطمعنا زودتر می توایم اطلاعات را دریافت و ارسال کنیم. و اما عدد پینگ چطور و چگونه باشد بهتر است؟ هرچه این سرعت بیشتر باشد و در دریافت و ارسال اطلاعات سرعت بیشتری در سرویس ما باشد عدد پینگ کوچکتر می شود. این عدد خود یکی از نشانه های کیفیت سرویس دهنده های اینترنتی می باشد که در ایران متاسفانه تعداد پینگ در بسیاری از سرویس دهنده بسیار بالاست. پینگ زیر ۱۰۰ تقریبا مطلوب و پینگ زیر ۴۰ عالی محسوب می شود که در کشور ایران کمتر به این موارد عالی برمیخورید.
در اندروید به چه کاری می آید ؟
برای اینکه بررسی کنیم ارتباط با سرور وجود دارد . بعضی وقت ها ممکن است سرور به درخواست (request) هایی که ما به سرور ارسال کنیم جواب ندهد و باعث ایجاد خطاهایی در برنامه شود پس بهتر است ابتدا بررسی کنیم که سرور در حالت آماده یا حالت Stable هست سپس درخواست را ارسال کنیم.
برای اینکه آن را بررسی کنیم ابتدا باید دسترسی استفاده از اینترنت را در AndroidManifest.xml اضافه کنیم.
1 | <uses-permission android:name="android.permission.INTERNET" /> |
بعد از ایکار ما یک void ایجاد کردیم تا عمل ping را بررسی کند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | public String ping(String url) { String str = ""; try { Process process = Runtime.getRuntime().exec( "/system/bin/ping -c 8 " + url); BufferedReader reader = new BufferedReader(new InputStreamReader( process.getInputStream())); int i; char[] buffer = new char[4096]; StringBuffer output = new StringBuffer(); while ((i = reader.read(buffer)) > 0) output.append(buffer, 0, i); reader.close(); // body.append(output.toString()+"\n"); str = output.toString(); // Log.d(TAG, str); } catch (IOException e) { // body.append("Error\n"); e.printStackTrace(); } return str; } |
همانطور که میبیند ورودی آن یک url است پس یک url مثلا
1 | http://programchi.ir |
سپس شما می توانید مقدار برگشتی ان را از طریق همان Void به دست بیارید.
این آموزش هم به پایان رسید.
موفق و موید باشید.
سلام و خسته نباشید و تشکر بابت آموزش های خوبتون.
ببخشید من خروجی این تابع را void کردم و به جای return، آن را toast کردم. و مقدار url را هم همین سایت گذاشتم. اما در زمان اجرا، یک toast خالی نشان میدهد.
چکار باید بکنم؟
با سپاس
بررسی کنید دسترسی استفاده از اینترنت را اضافه کرده باشید ولی احساس می کنم اضافه کردید چون باید برنامه کرش میداد اگر دسترسی نمیداید بگذارید یک بررسی بکنم .
بله دسترسی اینترنت رو دادم و از یک جای دیگه این تابع رو فراخوانی کردم :
ping(“http://programchi.ir”);
سلام از کد زیر استفاده کنید.
و نحوه استفاده از آن
موفق باشید.
سلام وقت بخیر
برای اینکه پینگ رو بگیرم و در یک تکست ویو نشون بده باید چیکار کنم؟