بسم اهلل الرحمن الرحیم

Size: px
Start display at page:

Download "بسم اهلل الرحمن الرحیم"

Transcription

1 بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش دریافت پیام از سرویسهای Cloud آندروید در مدرس : مهندس افشین رفوآ

2 آموزش دریافت پیام از سرویسهای Cloud در آندروید این فصل روش نشاندن )push( اطالعات از یک سرور به دستگاه گوگل را برای شما تشریح می کند. فهرست محتوا.1 messaging Cloud to device )پیام رسانی از cloud به دستگاه( Polling )ممیزی یا نظارت( در مقابل push )نشاندن( Cloud service )رایانش ابری( ابزار الزم برای استفاده از C2DM مجوزهای الزم برای استفاده از C2DM intent receiver. 2 مراحل پیاده سازی ثبت سرور برنامه registration( )application server دریافت شناسه ی ثبت ID( )registration برای برنامه ی موبایل ثبت و تخصیص گیرنده برای پیام های C2DM ارسال پیام. 3 ثبت و دستگاه 4. آموزش ایجاد برنامه هایی که قابلیت C2DM در برنامه فعال سازی شده باشد طرح بندی و پروژه ایجاد receiver ها و activity ها ثبت برنامه 5. آموزش استفاده از ابزار خط فرمان Curl برای شبیه سازی سرور

3 6. آموزش ایجاد برنامه ی سرور.1 messaging Cloud to device )پیام رسانی از cloud به دستگاه( Polling )ممیزی یا نظارت( در مقابل push )نشاندن( بیشتر برنامه های موبایل ملزم به دانلود و دریافت داده از اینترنت هستند. یکی از روش های بروز رسانی اطالعات برنامه ی مورد نظر polling )نظارت( است که طی آن برنامه های موبایل در فواصل معین سرور را برای اطالعات جدید بررسی می کند. در صورت نبود داده های مورد نیاز استفاده از این روش پهنای باند شبکه و باتری موبایل را بی هیچ دلیل معینی مصرف کرده است. روش دیگری که می توان از آن بهره برد این است که خود سرویس دهنده یا سرور به محض اینکه داده های جدید عرضه شد با دستگاه موبایل ارتباط برقرار کرده وآن را از وجود اطالعات جدید مطلع کند. به این فرایند push )نشاندن( می گویند. چنانچه اطالعات یا داده ها به طور مداوم تغییر نمی کنند Push روش ارجح تلقی می گردد. Cloud service )رایانش ابری( شما می توانید از طریق Google Play services اطالعیه ها )notification( ها را در برنامه یا اپلیکیشن خود بنشانید. برای این منظور باید Google Cloud Messaging for Android را در Google API Console فعال سازی کنید. در C2DM سه گروه مختلف شرکت دارند. سرور برنامه server( )app که پیام ها را به دستگاه اندروید ارائه داده و یا پیام های نام برده را در آن می نشاند سرورهای C2DM گوگل و دیگری برنامه ی اندروید. برنامه ی موجود در سرور برنامه ممکن است به هر زبان برنامه نویسی نوشته شده باید مانند Java Python و.PHP زمانی که سرور برنامه پیامی را به اپلیکیشن مربوطه اندروید ارائه می دهد )push( در واقع پیام ذکر شده را از طریق HTTP POST به سرورهای C2DM گوگل ارسال می کند.

4 سرورهای C2DM پیام مورد نظر را به دستگاه می فرستند. اگر دستگاه به اینترنت وصل نباشد پیام مربوطه زمانی که دستگاه آنالین شد به آن تحویل داده می شود. پس از اینکه پیغام توسط دستگاه مورد نظر دریافت گردید گیرنده ی )intent receiver( intent ایجاد می گردد. برنامه ی موبایل یک intent receiver ویژه ی این Broadcast ثبت می کند. در مرحله ی بعد برنامه اجرا شده و پیغام مربوطه توسط Intent Receiver پردازش می شود. حجم پیام های C2DM محدود به 1024 بایت می باشد و وظیفه ی آن ها تنها اطالع دادن به دستگاه است و نه انتقال داده ها. )workflow( گردش کار متداول این است که خود سرورهای C2DM گوگل به اپلیکیشن اطالع می دهند که اطالعات جدیدی ویژه ی آن برنامه عرضه شده است. سپس اپلیکیشن اندروید داده ها را از سرور دیگری واکشی می کند. دستگاه های اندروید با سرور Android play مداوم ارتباط دارند. C2DM از این ارتباط یا اتصال موجود با سرورهای گوگل استفاده می کند. این اتصال به گونه ای بهینه سازی شده است که مصرف پهنای باند و باتری به کمترین حالت ممکن برسد. هم اکنون در مرحله ی آزمون بتا به سر می برد برای استفاده از آن باید درخواست بدهید. البته C2DM C2DM روزانه اجازه ی ارسال تنها پیام به ازای هر فرستنده را می دهد و در حال حاضر خدمت رسانی آن رایگان می باشد. C2DM ابزار الزم برای استفاده از C2MD برای نخستین بار در اندروید 2.2 در دسترس قرار گرفت و الزمه ی استفاده از آن نصب برنامه ی Android Play بر روی دستگاه می باشد. جهت استفاده از C2MD بر روی شبیه ساز )EMULATOR( باید از یک دستگاه گوگل که API آن حداقل 8 و یا باالتر است بهره گرفته و یک حساب کاربری گوگل نیز از طریق Settings برای خود ایجاد کنید.

5 C2DM مجوزهای الزم برای استفاده از به منظور استفاده از C2DM در برنامه ی خود الزم است مجوزهای ذیل را رجیستر / ثبت کنید. com.google.android.c2dm.permission.receive android.permission.internet برنامه ی شما همچنین باید مجوز ".permission.c2d_message" "applicationpackage + را با "signature" "android:protectionlevel" of اعالن کند تا از این طریق اپلیکیشن های دیگر نتوانند پیام های برنامه ی مربوطه را ثبت و دریافت کنند. android:protectionlevel="signature" ایجاب می کند که برنامه ی درخواست کننده ی مجوز با همان گواهی یا مجوزی )certificate( که برنامه ی اعالن کننده ی مجوز با آن امضاء شده نشان گذاری شده باشد. در غیر این صورت مجوز به آن برنامه داده نخواهد شد. intent receiver برنامه ی شما باید یک گیرنده ی intent برای دو intent زیر ثبت کند. com.google.android.c2dm.intent.registration com.google.android.c2dm.intent.receive ویژه ی "com.google.android.c2dm.intent.receive" به محض دریافت پیغام جدید receiver فراخوانده می شود در حالی که گیرنده ی )مختص(" com.google.android.c2dm.intent.registration " تنها زمانی صدا زده می شود که کد ثبت / code registration برنامه ی مورد نظر دریافت شده باشد.. 2 مراحل پیاده سازی )application server registration( ثبت سرور برنامه سرور برنامه باید خود را برای سرورهای C2DM احراز هویت کند )بشناساند(. با ارسال درخواست HTTP POST به C2DM توکن یا نشانه ی شناسایی امنیتی token( )authentication توسط یک پست الکترونیکی و رمزعبور مشخص می گردد. توکن در برنامه ی سمت سرور server( )app ذخیره گشته سپس از این توکن

6 برای شناسایی برنامه ی تحت سرور server( )app به سرورهای C2DM به مجرد ارسال پیام ها استفاده می شود. مثال با استفاده از کد زیر می توان توکن ایمیل و پسورد ثبت شده را دریافت کرد. package de.vogella.java.c2dm.server.util; import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstreamreader; import java.io.outputstream; import java.net.httpurlconnection; import java.net.url; public class AuthenticationUtil { private AuthenticationUtil() { // Util class cannot get instanziated public static String gettoken(string String password) throws IOException { // create the post data // Requires a field with the and the password StringBuilder builder = new StringBuilder(); builder.append(" =").append( ); builder.append("&passwd=").append(password); builder.append("&accounttype=google"); builder.append("&source=mylittleexample"); builder.append("&service=ac2dm"); // Setup the Http Post byte[] data = builder.tostring().getbytes(); URL url = new

7 URL(" HttpURLConnection con = (HttpURLConnection) url.openconnection(); con.setusecaches(false); con.setdooutput(true); con.setrequestmethod("post"); con.setrequestproperty("content-type" "application/x-www-form-urlencoded"); con.setrequestproperty("content-length" Integer.toString(data.length)); // Issue the HTTP POST request OutputStream output = con.getoutputstream(); output.write(data); output.close(); // read the response BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream())); String line = null; String auth_key = null; while ((line = reader.readline())!= null) { if (line.startswith("auth=")) { auth_key = line.substring(5); // Finally get the authentication token // To something useful with it return auth_key; توکن به طور متناوب بازسازی می شود.

8 مثال فوق با زبان برنامه نویسی جاوا نوشته شده است. می توان توکن را با استفاده از دیگر ابزار http یا زبان های برنامه نویسی دریافت کرد. برای مثال می توان با استفاده از ابزار خط فرمان )= curl یک ابزار خط فرمان که به منظور ارسال و دریافت فایل ها به وسیله ی ترکیب نحوی URL مورد استفاده قرار می گیرد( سرور را شبیه سازی کرد. دریافت شناسه ی ثبت ID( )registration برای برنامه ی موبایل به منظور رجیستر کردن برنامه ی اندروید برای بهره گرفتن از خدمت رسانی C2DM یک registration intent "com.google.android.c2dm.intent.register". اجرا )fire( کنید. این کار با راه اندازی یک سرویس در نهایت registration را به سرورهای C2DM ارسال می کند. "sender" نام برده دربردارنده ی یک extra با کلید و آدرس ایمیل است که در ابتدای امر برای Intent "app" extra Pendingintent ثبت شده بود. intent این همچنین باید حامل یک با باشد. سرویس C2DM "sender" درباره ی برنامه ی جاری اطالعاتی را به سیستم اندروید ارائه می دهد. مقدار برای PendingIntent آدرس ایمیلی است که تحت آن C2DM message service خود را رجیستر کردید. در مثال زیر را با ایمیل خود جایگزین کنید. public void register(view view) { Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER"); intent.putextra("app" PendingIntent.getBroadcast(this 0 new Intent() 0)); intent.putextra("sender" "youruser@gmail.com"); startservice(intent); intent سرویس به طور ناهمگام با Google رجیستر )ثبت( شده و در صورت موفقیت عملیات ثبت را ارسال می کند. اپلیکیشن شما باید یک "com.google.android.c2dm.intent.registration"

9 Broadcast receiver ویژه ی intent مذکور ثبت کند )یک broadcast receiver به آن تخصیص دهد(. برای این امر نیز به یک مجوز مبتنی بر پکیج نیاز است زیرا که سیستم اندروید آن را از داخل بررسی می کند. package de.vogella.android.c2dm.simpleclient; import android.content.broadcastreceiver; import android.content.context; import android.content.intent; import android.util.log; public class C2DMRegistrationReceiver extends BroadcastReceiver public void onreceive(context context Intent intent) { String action = intent.getaction(); Log.w("C2DM" "Registration Receiver called"); if ("com.google.android.c2dm.intent.registration".equals(action)) { Log.w("C2DM" "Received registration ID"); final String registrationid = intent.getstringextra("registration_id"); String error = intent.getstringextra("error"); Log.d("C2DM" "dmcontrol: registrationid = " + registrationid + " error = " + error); // TODO Send this to my application server فایل AndroidManifest.xml آن به ترتیب زیر است. در صورت استفاده از پکیج دیگر باید کدنویسی را متناسب آن پکیج اصالح کنید.

10 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="de.vogella.android.c2dm.simpleclient" android:versioncode="1" android:versionname="1.0"> <uses-sdk android:minsdkversion="8" /> <permission android:name="de.vogella.android.c2dm.simpleclient.permission.c2d_message" android:protectionlevel="signature" /> <uses-permission android:name="de.vogella.android.c2dm.simpleclient.permission.c2d_message" /> <uses-permission android:name="com.google.android.c2dm.permission.receive" /> <uses-permission android:name="android.permission.internet" /> <application <activity android:name=".c2dmclientactivity"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <receiver android:name=".c2dmregistrationreceiver" android:permission="com.google.android.c2dm.permission.send"> <intent-filter> <action android:name="com.google.android.c2dm.intent.registration"> </action> <category android:name="de.vogella.android.c2dm.simpleclient" /> </intent-filter> </receiver>

11 </application> </manifest> اینتنت "com.google.android.c2dm.intent.registration" حاوی یک شناسه ی ثبت ( registration )ID است. هر شناسه ی ثبت نشان دهنده ی دستگاه معینی است به عنوان مثال هر گوشی اندرویدی کد ثبت مختص به خود را دریافت می کند. C2DM ممکن است این شناسه ی ثبت را در بازه هایی معین بازسازی )refresh( کند اما تا یک بازسازی دیگر برنامه ی مورد نظر باید این شناسه را برای استفاده در آینده ذخیره کند. پس از اینکه برنامه ی اندروید شناسه ی ثبت را دریافت کرد باید این اطالعات دریافتی را به سرور برنامه ارسال کند. سرور برنامه می تواند از شناسه ی ثبت استفاده کرده و از طریق سرورهای C2DM به دستگاه پیام ارسال کند. به عنوان مثال کد زیر deviceid و registrationid را به یک سرور ارسال می کند. // Better do this in an asynchronous thread public void sendregistrationidtoserver(string deviceid String registrationid) { Log.d("C2DM" "Sending registration ID to my application server"); HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(" try { List<NameValuePair> namevaluepairs = new ArrayList<NameValuePair>(1); // Get the deviceid namevaluepairs.add(new BasicNameValuePair("deviceid"

12 deviceid)); namevaluepairs.add(new BasicNameValuePair("registrationid" registrationid)); post.setentity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = client.execute(post); BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); String line = ""; while ((line = rd.readline())!= null) { Log.e("HttpResponse" line); catch (IOException e) { e.printstacktrace(); سرور شناسه ی ثبت را ماندگار می سازد. C2DM ثبت و تخصیص گیرنده برای پیام های )message receiver( درست مشابه تخصیص یک registration receiver شما باید یک گیرنده ی پیغام پیکربندی و تنظیم کنید. این می تواند دقیق همان registration receiver باشد یا یک گیرنده ی به طور کامل متفاوت باشد. نمونه ی زیر مثالی از یک گیرنده ی پیغام مجزا می دهد. package de.vogella.android.c2dm.simpleclient; import android.content.broadcastreceiver; import android.content.context; import android.content.intent; import android.util.log;

13 public class C2DMMessageReceiver extends BroadcastReceiver public void onreceive(context context Intent intent) { String action = intent.getaction(); Log.w("C2DM" "Message Receiver called"); { if ("com.google.android.c2dm.intent.receive".equals(action)) Log.w("C2DM" "Received message"); final String payload = intent.getstringextra("payload"); Log.d("C2DM" "dmcontrol: payload = " + payload); // Send this to my application server receiver( )message خود را در فایل AndroidManifest.xml ثبت عالوه بر آن کنید. الزم است گیرنده ی پیغام <receiver android:name=".c2dmmessagereceiver" android:permission="com.google.android.c2dm.permission.send"> <intent-filter> <action android:name="com.google.android.c2dm.intent.receive"></action> <category android:name="de.vogella.android.c2dm.simpleclient" /> </intent-filter> </receiver>

14 ارسال پیام در این مرحله سرور برنامه و اپلیکیشن اندروید هر دو آماده ی استفاده از C2DM هستند. سرور توکن امنیتی token( )authentication و شناسه ی ثبت برنامه ی مورد نظر را داشته و اپلیکیشن موبایل نیز یک Broadcast receiver ویژه ی دریافت پیغام ها ثبت کرده است. جهت ارسال یک پیغام به دستگاه سرور اپلیکیشن یک درخواست HTTP POST به سرورهای C2DM گوگل ارسال می کند. این درخواست HTTP GET حاوی شناسه ی ثبت ویژه ی این دستگاه و توکن امنیتی است )برای اینکه به گوگل اطالع دهد که این سرور مجوز ارسال پیغام را دارد(. package de.vogella.java.c2dm.server.util; import java.io.ioexception; import java.io.outputstream; import java.net.url; import java.net.urlencoder; import javax.net.ssl.hostnameverifier; import javax.net.ssl.httpsurlconnection; import javax.net.ssl.sslsession; public class MessageUtil { private final static String AUTH = "authentication"; private static final String UPDATE_CLIENT_AUTH = "Update- Client-Auth"; public static final String PARAM_REGISTRATION_ID = "registration_id"; public static final String PARAM_DELAY_WHILE_IDLE = "delay_while_idle"; public static final String PARAM_COLLAPSE_KEY = "collapse_key"; private static final String UTF8 = "UTF-8"; public static int sendmessage(string auth_token String

15 registrationid String message) throws IOException { StringBuilder postdatabuilder = new StringBuilder(); postdatabuilder.append(param_registration_id).append("=").append(registrationid); postdatabuilder.append("&").append(param_collapse_key).append("= ").append("0"); postdatabuilder.append("&").append("data.payload").append("=").append(urlencoder.encode(message UTF8)); byte[] postdata = postdatabuilder.tostring().getbytes(utf8); // Hit the dm URL. URL url = new URL(" HttpsURLConnection.setDefaultHostnameVerifier(new CustomizedHostnameVerifier()); HttpsURLConnection conn = (HttpsURLConnection) url.openconnection(); conn.setdooutput(true); conn.setusecaches(false); conn.setrequestmethod("post"); conn.setrequestproperty("content-type" "application/x-www-form-urlencoded;charset=utf-8"); conn.setrequestproperty("content-length" Integer.toString(postData.length)); conn.setrequestproperty("authorization" "GoogleLogin auth=" + auth_token);

16 OutputStream out = conn.getoutputstream(); out.write(postdata); out.close(); int responsecode = conn.getresponsecode(); return responsecode; private static class CustomizedHostnameVerifier implements HostnameVerifier { public boolean verify(string hostname SSLSession session) { return true; پس از اینکه سرور پیغام ها را به سرور C2DM فرستاد سرویس دهنده پیام ها را صف بندی کرده و به محض در دسترس بودن دستگاه آن ها را برای شما نمایش می دهد. پیام مذکور به عنوان یک broadcast به broadcast دستگاه مربوط ارسال می گردد. برنامه ی شما باید برای این رخداد ثبت نام کرده تا پیام را دریافت کند. broadcast پیغام دریافت شده به receiver ثبت شده برای "com.google.android.c2dm.intent.receive". ارسال می گردد. داده ها را می توان از intent به وسیله ی تابع getextras() دریافت کرد. کلیدهای موجود نیز عبارتند از "payload"."collapse_key" "from" داده ی واقعی داخل "payload" گنجانده شده است. گیرنده / receiver خود قادر است این اطالعات را استخراج کرده و به آن واکنش نشان دهد.. 3 ثبت و دستگاه

17 در حال حاضر C2DM در مرحله ی آزمایشی بتا به سر می برد. برای دسترسی و استفاده از آن باید درخواست دهید. با مراجعه به این لینک می توانید برای استفاده از آن ثبت نام کنید : form.link to the signup اگر مثال زیر را روی شبیه ساز تست می کنید باید توجه داشته باشید که API گوگل آن نسخه ی 8 یا باالتر باشد. همچنین باید یک کاربر گوگل در محیط شبیه ساز ثبت کنید. این کار را می توان با مراجعه به Settings Accounts Sync این انجام داد. در صورت امتحان کردن این مثال روی دستگاه واقعی اندروید باید از نصب Android Market بر روی دستگاه اطمینان کسب کنید. 4. آموزش ایجاد برنامه هایی که قابلیت C2DM در برنامه فعال سازی شده باشد. طرح بندی و پروژه "C2DMClientActivity" پروژه ی اندروید "de.vogella.android.c2dm.simpleclient" را ایجاد کنید. طرح کلی )layout( main.xml را ایجاد کنید. همراه با اکتیویتی <?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onclick="register" android:text="register"></button> <button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onclick="showregistrationid" android:text="show"></button> </linearlayout>

18 همچنین طرح کلی "activity_result.xml" را ایجاد کنید از این layout در result activity های خود استفاده می کنیم. <?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android=" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <textview android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:text="no info." android:textappearance="?android:attr/textappearancelarge"> </textview> </linearlayout> ایجاد receiver ها و activity ها اکنون کالس های "C2DMReceiverReceiver" و "C2DMMessageReceiver" را بسازید این دو کالس را بعد به عنوان گیرنده برای registration intent و message intent ثبت می کنیم. package de.vogella.android.c2dm.simpleclient; import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstreamreader; import java.util.arraylist; import java.util.list; import org.apache.http.httpresponse; import org.apache.http.namevaluepair; import org.apache.http.client.httpclient; import org.apache.http.client.entity.urlencodedformentity;

19 import org.apache.http.client.methods.httppost; import org.apache.http.impl.client.defaulthttpclient; import org.apache.http.message.basicnamevaluepair; import android.app.notification; import android.app.notificationmanager; import android.app.pendingintent; import android.content.broadcastreceiver; import android.content.context; import android.content.intent; import android.content.sharedpreferences; import android.content.sharedpreferences.editor; import android.preference.preferencemanager; import android.provider.settings.secure; import android.util.log; public class C2DMRegistrationReceiver extends BroadcastReceiver public void onreceive(context context Intent intent) { String action = intent.getaction(); Log.w("C2DM" "Registration Receiver called"); if ("com.google.android.c2dm.intent.registration".equals(action)) { Log.w("C2DM" "Received registration ID"); final String registrationid = intent.getstringextra("registration_id"); String error = intent.getstringextra("error"); Log.d("C2DM" "dmcontrol: registrationid = " + registrationid + " error = " + error); String deviceid =

20 Secure.getString(context.getContentResolver() Secure.ANDROID_ID); createnotification(context registrationid); sendregistrationidtoserver(deviceid registrationid); later // Also save it in the preference to be able to show it saveregistrationid(context registrationid); private void saveregistrationid(context context String registrationid) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); Editor edit = prefs.edit(); edit.putstring(c2dmclientactivity.auth registrationid); edit.commit(); public void createnotification(context context String registrationid) { NotificationManager notificationmanager = (NotificationManager) context.getsystemservice(context.notification_service); Notification notification = new Notification(R.drawable.icon "Registration successful" System.currentTimeMillis()); // hide the notification after its selected notification.flags = Notification.FLAG_AUTO_CANCEL;

21 Intent intent = new Intent(context RegistrationResultActivity.class); intent.putextra("registration_id" registrationid); PendingIntent pendingintent = PendingIntent.getActivity(context 0 intent 0); notification.setlatesteventinfo(context "Registration" "Successfully registered" pendingintent); notificationmanager.notify(0 notification); // incorrect usage as the receiver may be canceled at any time // do this in an service and in an own thread public void sendregistrationidtoserver(string deviceid { String registrationid) Log.d("C2DM" "Sending registration ID to my application server"); HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(" try { List<NameValuePair> namevaluepairs = new ArrayList<NameValuePair>(1); // Get the deviceid namevaluepairs.add(new BasicNameValuePair("deviceid" deviceid)); namevaluepairs.add(new BasicNameValuePair("registrationid" registrationid));

22 post.setentity(new UrlEncodedFormEntity(nameValuePairs)); HttpResponse response = client.execute(post); BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); String line = ""; while ((line = rd.readline())!= null) { Log.e("HttpResponse" line); catch (IOException e) { e.printstacktrace(); package de.vogella.android.c2dm.simpleclient; import android.app.notification; import android.app.notificationmanager; import android.app.pendingintent; import android.content.broadcastreceiver; import android.content.context; import android.content.intent; import android.util.log; public class C2DMMessageReceiver extends BroadcastReceiver public void onreceive(context context Intent intent) { String action = intent.getaction(); Log.w("C2DM" "Message Receiver called"); { if ("com.google.android.c2dm.intent.receive".equals(action)) Log.w("C2DM" "Received message");

23 final String payload = intent.getstringextra("payload"); Log.d("C2DM" "dmcontrol: payload = " + payload); // TODO Send this to my application server to get the real data // Lets make something visible to show that we received the message createnotification(context payload); public void createnotification(context context String payload) { NotificationManager notificationmanager = (NotificationManager) context.getsystemservice(context.notification_service); Notification notification = new Notification(R.drawable.icon "Message received" System.currentTimeMillis()); // hide the notification after its selected notification.flags = Notification.FLAG_AUTO_CANCEL; Intent intent = new Intent(context MessageReceivedActivity.class); intent.putextra("payload" payload); PendingIntent pendingintent = PendingIntent.getActivity(context 0 intent PendingIntent.FLAG_CANCEL_CURRENT); notification.setlatesteventinfo(context "Message" "New message received" pendingintent); notificationmanager.notify(0 notification);

24 همچنین دو activity زیر را ایجاد کنید که در مراحل بعدی جهت مشاهده ی نتایج از آن ها استفاده می کنیم. package de.vogella.android.c2dm.simpleclient; import android.app.activity; import android.os.bundle; import android.widget.textview; public class RegistrationResultActivity extends Activity protected void oncreate(bundle savedinstancestate) { setcontentview(r.layout.activity_result); Bundle extras = getintent().getextras(); if (extras!= null) { String registrationid = extras.getstring("registration_id"); if (registrationid!= null && registrationid.length() > 0) { TextView view = (TextView) findviewbyid(r.id.result); view.settext(registrationid); super.oncreate(savedinstancestate); package de.vogella.android.c2dm.simpleclient; import android.app.activity; import android.os.bundle; import android.widget.textview; public class MessageReceivedActivity extends Activity {

25 @Override protected void oncreate(bundle savedinstancestate) { setcontentview(r.layout.activity_result); Bundle extras = getintent().getextras(); if (extras!= null) { String message = extras.getstring("payload"); if (message!= null && message.length() > 0) { TextView view = (TextView) findviewbyid(r.id.result); view.settext(message); super.oncreate(savedinstancestate); Activity Intent Receiver حال فایل AndroidManifest.xml زیر را ایجاد کنید. فایل گفته شده ها ها درخواست ها و مجوزهای الزم را به ثبت می رساند. <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android=" package="de.vogella.android.c2dm.simpleclient" android:versioncode="1" android:versionname="1.0"> <uses-sdk android:minsdkversion="8" /> <permission android:name="de.vogella.android.c2dm.simpleclient.permission.c2d_message" android:protectionlevel="signature" /> <uses-permission android:name="de.vogella.android.c2dm.simpleclient.permission.c2d_message" /> <uses-permission android:name="com.google.android.c2dm.permission.receive" /> <uses-permission android:name="android.permission.internet" /> <application android:icon="@drawable/icon" android:label="@string/app_name">

26 <activity android:name=".c2dmclientactivity"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> <receiver android:name=".c2dmregistrationreceiver" android:permission="com.google.android.c2dm.permission.send"> <intent-filter> <action android:name="com.google.android.c2dm.intent.registration"> </action> <category android:name="de.vogella.android.c2dm.simpleclient" /> </intent-filter> </receiver> <receiver android:name=".c2dmmessagereceiver" android:permission="com.google.android.c2dm.permission.send"> <intent-filter> <action android:name="com.google.android.c2dm.intent.receive"> </action> <category android:name="de.vogella.android.c2dm.simpleclient" /> </intent-filter> </receiver> <activity android:name="registrationresultactivity"> </activity> <activity android:name="messagereceivedactivity"> </activity> </application> </manifest> کالس "C2DMClientActivity" را به ترتیب زیر اصالح کنید. package de.vogella.android.c2dm.simpleclient; import android.app.activity;

27 import android.app.pendingintent; import android.content.intent; import android.content.sharedpreferences; import android.os.bundle; import android.preference.preferencemanager; import android.util.log; import android.view.view; import android.widget.toast; public class C2DMClientActivity extends Activity { public final static String AUTH = "authentication"; // Example Activity to trigger a request for a registration ID to the Google // public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); public void register(view view) { Log.w("C2DM" "start registration process"); Intent intent = new Intent("com.google.android.c2dm.intent.REGISTER"); intent.putextra("app" PendingIntent.getBroadcast(this 0 new Intent() 0)); // Sender currently not used intent.putextra("sender" "nonsenses@gmail.com"); startservice(intent); public void showregistrationid(view view) { SharedPreferences prefs = PreferenceManager

28 .getdefaultsharedpreferences(this); String string = prefs.getstring(auth "n/a"); Toast.makeText(this string Toast.LENGTH_LONG).show(); Log.d("C2DM RegId" string); onclick به دکمه ها متصل هستند. دکمه ی متدهای داخل activity ها به وسیله ی خصوصیت (property) اول درخواست برای شناسه ی ثبت را راه اندازی می کند و دکمه ی دوم کلید ثبت key( )registration ذخیره شده را نشان می دهد. همچنین شناسه ی ثبت را در LogCat view رایت کنید. اکنون یک کپی از شناسه ی ثبت LogCat view تهیه کرده تا در آینده بتوانید آن را در پیاده سازی سرور خود بکار ببرید. ثبت برنامه برنامه ی خود را اجرا کرده و کاربر ثبت نام شده را نگه دارید سپس دکمه ی مربوط را بزنید. LogCat را برای شناسه ی ثبت بررسی کنید. در صورت مشاهده ی پیغام زیر مطمئن شوید که از دستگاه گوگل استفاده کرده و همچنین یک کاربر گوگل روی دستگاه مورد نظر ثبت کرده اید. Unable to start service Intent {act=com.google.android.c2dm.intent.register... : not found 5. آموزش استفاده از ابزار خط فرمان Curl برای شبیه سازی سرور در صورت راه اندازی سیستم لینوکس می توانید به راحتی سرویس را روی خط فرمان تست کنید. با استفاده از curl روی خط فرمان می توان کلید شناسایی / احراز هویت key( )authentication را درخواست کرد. از پاسخ دریافتی بخش پس از "Auth=" را دریافت کرده و بکار ببرید.

29 curl -d =your_user -d "Passwd=your_password" -d accounttype=google -d source=google-curl-example -d service=ac2dm با استفاده از این بخش و کد ثبت code( )registration می توان پیغام به دستگاه ارسال کرد. curl --header "Authorization: GoogleLogin auth=your_authenticationid" " -d registration_id=your_registration -d "data.payload=payload" -d collapse_key=0 6. آموزش ایجاد برنامه ی سرور همان طور که پیشتر توضیح داده شد سرور برنامه باید از طریق HTTPS یک کلید احراز هویت دریافت کند. پس از این مرحله سرور برنامه باید پیام های مورد نظر را از طریق HTTP با ارائه ی کلید احراز هویت و شناسه ی ثبت به دستگاه مربوطه ارسال کنید. با بهره گیری از یک برنامه ی جاوا سرویس دهنده را شبیه سازی می کنیم. شناسه ی ثبت دستگاه داخل اپلیکیشن hard-code )وابسته به مقادیر موجود در متن برنامه / code source و نه مقادیری که توسط کاربر وارد می گردد( می شود زیرا که امکان دستیابی به برنامه از طریق http وجود ندارد. جهت ثبت و ذخیره ی اعتبارنامه )credentials( خود کالس زیر را بکار ببرید. package de.vogella.java.c2dm.server.secret; public class SecureStorage { public static final String USER = "your_registereduser"; public static final String PASSWORD = "your_password";

30 یک پروژه جدید جاوا "de.vogella.java.c2dm.server" ایجاد کنید. حال کالس زیر را بسازید. کالس مزبور در utility class واقع به عنوان یک کالس خدماتی / )کالسی که یک مجموعه متد ویژه اجرای توابع متداول که مدام مورد استفاده ی مجدد قرار ی گیرند تعریف می کند( عمل می کند که توکن یا نشانه ی امنیتی token( )authentication را از سرور گوگل دریافت می کند. package de.vogella.java.c2dm.server.util; import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstreamreader; import java.io.outputstream; import java.net.httpurlconnection; import java.net.url; public class AuthenticationUtil { private AuthenticationUtil() { // Util class cannot get instanziated public static String gettoken(string String password) throws IOException { // create the post data // Requires a field with the and the password StringBuilder builder = new StringBuilder(); builder.append(" =").append( ); builder.append("&passwd=").append(password); builder.append("&accounttype=google"); builder.append("&source=mylittleexample"); builder.append("&service=ac2dm"); // Setup the Http Post byte[] data = builder.tostring().getbytes(); URL url = new URL("

31 HttpURLConnection con = (HttpURLConnection) url.openconnection(); con.setusecaches(false); con.setdooutput(true); con.setrequestmethod("post"); con.setrequestproperty("content-type" "application/x-www-form-urlencoded"); con.setrequestproperty("content-length" Integer.toString(data.length)); // Issue the HTTP POST request OutputStream output = con.getoutputstream(); output.write(data); output.close(); // read the response BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream())); String line = null; String auth_key = null; while ((line = reader.readline())!= null) { if (line.startswith("auth=")) { auth_key = line.substring(5); // Finally get the authentication token // To something useful with it return auth_key; اکنون کالس "GetAuthenticationToken" را ایجاد کنید. از این کالس می توان برای دریافت نشانه ی امنیتی token( )authentication استفاده کرد.

32 package de.vogella.java.c2dm.server; import java.io.ioexception; import de.vogella.java.c2dm.server.secret.securestorage; import de.vogella.java.c2dm.server.util.authenticationutil; public class GetAuthenticationToken { public static void main(string[] args) throws IOException { String token = AuthenticationUtil.getToken(SecureStorage.USER SecureStorage.PASSWORD); System.out.println(token); کالس GetAuthenticationToken را اجرا کرده و به خاطر داشته باشید که باید نشانه ی احراز هویت token( )authentication و شناسه ی ثبت id( )registration خود را نگه دارید. package de.vogella.java.c2dm.server; public class ServerConfiguration { public static final String AUTHENTICATION_TOKEN = "your_token"; public static final String REGISTRATION_ID = "registration_id_of_your_device"; همچنین الزم است کالس خدماتی class( )utility زیر را ایجاد کنید. کالس گفته شده به شما اجازه می دهد پیام ها را به دستگاه ارسال کنید. package de.vogella.java.c2dm.server.util; import java.io.ioexception; import java.io.outputstream; import java.net.url; import java.net.urlencoder;

33 import javax.net.ssl.hostnameverifier; import javax.net.ssl.httpsurlconnection; import javax.net.ssl.sslsession; public class MessageUtil { private final static String AUTH = "authentication"; private static final String UPDATE_CLIENT_AUTH = "Update- Client-Auth"; public static final String PARAM_REGISTRATION_ID = "registration_id"; public static final String PARAM_DELAY_WHILE_IDLE = "delay_while_idle"; public static final String PARAM_COLLAPSE_KEY = "collapse_key"; private static final String UTF8 = "UTF-8"; public static int sendmessage(string auth_token String registrationid IOException { String message) throws StringBuilder postdatabuilder = new StringBuilder(); postdatabuilder.append(param_registration_id).append("=").append(registrationid); postdatabuilder.append("&").append(param_collapse_key).append("= ").append("0"); postdatabuilder.append("&").append("data.payload").append("=").append(urlencoder.encode(message UTF8)); byte[] postdata = postdatabuilder.tostring().getbytes(utf8); // Hit the dm URL. URL url = new

34 URL(" HttpsURLConnection.setDefaultHostnameVerifier(new CustomizedHostnameVerifier()); HttpsURLConnection conn = (HttpsURLConnection) url.openconnection(); conn.setdooutput(true); conn.setusecaches(false); conn.setrequestmethod("post"); conn.setrequestproperty("content-type" "application/x-www-form-urlencoded;charset=utf-8"); conn.setrequestproperty("content-length" Integer.toString(postData.length)); conn.setrequestproperty("authorization" "GoogleLogin auth=" + auth_token); OutputStream out = conn.getoutputstream(); out.write(postdata); out.close(); int responsecode = conn.getresponsecode(); return responsecode; private static class CustomizedHostnameVerifier implements HostnameVerifier { public boolean verify(string hostname SSLSession session) { return true;

35 در مرحله ی آخر کالس "SendMessageToDevice" را ایجاد کنید این کالس نیز به شما اجازه می دهد پیام ها را به دستگاه خود بفرستید. package de.vogella.java.c2dm.server; import java.io.ioexception; import de.vogella.java.c2dm.server.util.messageutil; public class SendMessageToDevice { public static void main(string[] args) throws IOException { // "Message to your device." is the message we will send to the Android app int responsecode = MessageUtil.sendMessage(ServerConfiguration.AUTHENTICATION_TOKEN ServerConfiguration.REGISTRATION_ID "Message to your device."); System.out.println(responseCode); حال آن را اجرا کنید. باید پیغامی به دستگاه ارسال شده و کد بازگشتی code( )return "200" را به شما ارائه دهد. روی دستگاه باید اطالعیه ی مشاهده کنید و در صورت آن باز کردن پیغامی برای شما به نمایش گذاشته شود.

بسم اهلل الرحمن الرحیم

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

More information

بسم اهلل الرحمن الرحیم

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

More information

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

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. آموزش Table در HTML مدرس : مهندس افشین رفوآ بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش Table در HTML مدرس : مهندس افشین رفوآ آموزش Table در HTML جدول های HTML به نویسندگان وب اجازه می دهند تا

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران در آموزش Intent اندروید (قسمت سوم ( مدرس : مهندس افشین رفوآ آدرس آموزشگاه : تهران - خيابان شريعتی - باال تر از

More information

12. تست activity برنامه

12. تست activity برنامه بسم اهلل الرحمن الرحيم آموزشگاه تحليل داده تخصصی ترين مرکز برنامه نويسی و ديتابيس در ايران آزمايش برنامه های کاربردی اندرويد با بهره گيری از چهارچوب نرم افزاریframework / Android test مدرس : مهندس افشين

More information

ابتدا نصب بودن بسته VConfig که برای راه اندازی VLAN مورد نیاز است را بررسی کنید:

ابتدا نصب بودن بسته VConfig که برای راه اندازی VLAN مورد نیاز است را بررسی کنید: اعطا ما مدیریت و شبکه به را تری افزون وری بهره و کارایی بیشتر امنیت تر آسان مدیریت VLAN می کند.دلیل و توجیه استفاده از VLAN بنا به نیاز و طراحی شبکه متغییر است VLAN. در تعریف ساده تقسیم شبکه موجود به چندین

More information

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. آموزش ایجاد کنترل های سفارشی / controls ASP.

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. آموزش ایجاد کنترل های سفارشی / controls ASP. و< بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش ایجاد کنترل های سفارشی / controls ASP.NET Custom مدرس : مهندس افشین رفوآ آموزش ایجاد کنترل های سفارشی

More information

پایتون جهت دسترسی به دیتابیس از توابع کتابخانه ای DB-API استفاده کرده و interface هایی که برای

پایتون جهت دسترسی به دیتابیس از توابع کتابخانه ای DB-API استفاده کرده و interface هایی که برای MySQL و دسترسی به دیتابیس Python پایتون جهت دسترسی به دیتابیس از توابع کتابخانه ای DB-API استفاده کرده و interface هایی که برای اتصال به پایگاه داده و مدیریت داده های اپلیکیشن بایستی پیاده سازی شود بر

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش از استفاده Drawable ها در اندروید مدرس: مهندس افشین رفوآ در این بخش به کاربرد drawable ها در اندروید می

More information

MODBUS ETHERNET و مفاهیم پایه

MODBUS ETHERNET و مفاهیم پایه MODBUS ETHERNET و مفاهیم پایه IP (network and sharing) 7 Network and Sharing Center. (Change adapter» «. settings). Properties (local adapter) : Internet Protocol Local Area Connection Properties. Properties.

More information

آشنایی با دستورNetStat

آشنایی با دستورNetStat آشنایی با دستورNetStat این دستور وضعیت پروتکلها و پورتهای ارتباطی TCP/IP را نمایش می دهد. در صورتی که این دستور بدون هیچ سوئیچی استفاده شود این دستور کلیه پورتها و ارتباطات خروجی فعال را نمایش می دهد.

More information

20. تمرين : ساخت برنامه ی تبديل دما

20. تمرين : ساخت برنامه ی تبديل دما بسم اهلل الرحمن الرحيم آموزشگاه تحليل داده تخصصی ترين مرکز برنامه نويسی و ديتابيس در ايران برنامه نويسی تحت اندرويد با Android Studio يا Eclipse ADT مدرس : مهندس افشين رفوآ کليه حقوق مادی و معنوی اين مقاله

More information

شروع کار با Entity Framework Core 2.0 ASP.NET Core 2.0

شروع کار با Entity Framework Core 2.0 ASP.NET Core 2.0 شروع کار با Entity Framework Core 2.0 ASP.NET Core 2.0 این مقاله نشان می دهد چگونه یک برنامه Entity Framework Core 2.0 MVC Web با استفاده از Visual Studio 2017 و ASP.NET Core ایجاد کنیم و چگونه عملیات

More information

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

کامل ترین دوره های آموزش برنامه نویسی پایگاه داده معماری نرم افزار و موبایل به همراه مجموعه مقاالت و فیلم های آموزشی رایگان در: کامل ترین دوره های آموزش برنامه نویسی پایگاه داده معماری نرم افزار و موبایل به همراه مجموعه مقاالت و فیلم های آموزشی رایگان در: www.tahlildadeh.com استفاده از این مطالب با ذکر منبع بال مانع است. شی SqlCommand

More information

یک هشدار دهنده صوتی قطع اینترنت یک راهکار عالی برای آنکه بدانید اینترنت شما چه زمانی قطع شده است

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

More information

بر روی هر یک از تجهیزاتی که از پروتکل IP/TCP پشتیبانی می کنند به ۲ طریق می توان Address IP تنظیم کرد.

بر روی هر یک از تجهیزاتی که از پروتکل IP/TCP پشتیبانی می کنند به ۲ طریق می توان Address IP تنظیم کرد. بر روی هر یک از تجهیزاتی که از پروتکل IP/TCP پشتیبانی می کنند به ۲ طریق می توان Address IP تنظیم کرد. Static Dynamic - - حتما تمامی خوانندگان با روش static آشنایی دارند. همان روش وارد کردن آدرس ها بصورت

More information

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

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران قابل جابجایی مدرس : مهندس افشین رفوآ بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران قابل جابجایی مدرس : مهندس افشین رفوآ قابل جابجایی jqueryui متد draggable() را برای ساخت عنصر قابل جابجایی DOM

More information

آموزش تصویری نصب Kerio Control. شرکت Bitdefender تعویض کرده و به طور کامل هم از سخت افزار های 64 بیت حمایت می نه (که

آموزش تصویری نصب Kerio Control. شرکت Bitdefender تعویض کرده و به طور کامل هم از سخت افزار های 64 بیت حمایت می نه (که دانلود Kerio Control Installer 9.2.2-2172 امروزه دغدغه بسیاری از ادمین های شب ه این شده است که چ ونه م توان پهنای باند مصرف توسط کاربران را کنترل کرد. نرم افزار های بسیاری به منظور کنترل و مانیتور کردن

More information

The no service password-recovery Command for Secure ROMMON Configuration

The no service password-recovery Command for Secure ROMMON Configuration دستور no service password-recovery قابلیتهای امنیتی ROMMON را فعال میکند ولی در هنگام استفاده از این دستور باید نهایت دقت رو انجام بدید و گرنه با دردسرهای زیادی مواجه خواهید شد. این دستور در جایی کاربرد

More information

مرتب سازی. (sort) : ویرایش احمدرضا غدیرزاده دانشجوی رشته ی مهندسی کامپیوتر

مرتب سازی. (sort) : ویرایش احمدرضا غدیرزاده دانشجوی رشته ی مهندسی کامپیوتر مرتب سازی (sort) : ویرایش احمدرضا غدیرزاده دانشجوی رشته ی مهندسی کامپیوتر تعریف کلید بخشی از هر رکورد که مرتبسازی بر اساس آن انجام میگیرد. به طور کلی الگوریتمهای مرتبسازی را میتوان به دو گروه تقسیم کرد:

More information

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. Web service چیست و چه کاربردی دارد مدرس : مهندس افشین رفوآ

بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. Web service چیست و چه کاربردی دارد مدرس : مهندس افشین رفوآ بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران Web service چیست و چه کاربردی دارد مدرس : مهندس افشین رفوآ Web service چیست و چه کاربردی دارد یک web service در

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش رشته ها در سی شارپ مدرس : مهندس افشین رفوآ آموزش رشته ها در سی شارپ در #C می توانید از رشته ها به عنوان

More information

access-list access-list-number {permit deny} {host source source-wildcard any}

access-list access-list-number {permit deny} {host source source-wildcard any} Cisco Access List در ترجمه لغوی به معنای لیست دسترسی سیسکو می باشد که زیاد هم از معنای واقعی خود دور نیست. همانطور که از اسم آن بر می آید به وسیله این ابزار میتوانیم بر روی سخت افزارهای سیسکو فایروال ایجاد

More information

مستندات کار با وب سرویس سیستم خبری نیوزویت

مستندات کار با وب سرویس سیستم خبری نیوزویت به خدا مستندات کار با وب سرویس سیستم خبری نیوزویت (Newsvit REST-API Documentation) بخش اخبار لیست اخبار list گرفتن لیست اخبار http://newsvit.ir/api/news/list?limit=8&page=3&order=&sort=asc&count=0 مرتب

More information

عنوان مقاله : نحوه ایجاد تصویر captcha در ASP.net تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان

عنوان مقاله : نحوه ایجاد تصویر captcha در ASP.net تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان در این مقاله قصد داریم نشان دهیم که چگونه می توان تصویر Captcha را در برنامه های ASP.netخود قرار دهیم captcha.برای تشخیص ربات ها از انسان ها ایجاد شده اند که با استفاده از آن ربات ها نتوانند به سایت وارد

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران نحوه شمارش در حلقه مدرس : مهندس افشین رفوآ آدرس آموزشگاه:تهران - خيابان شريعتی - باال تر از خيابان ملک - جنب بانک

More information

فهرست مطالب. سیستم مورد نیاز جهت نصب :... Kaspersky Anti-Virus نصب...: Kaspersky Anti-Virus نصب استاندارد...

فهرست مطالب. سیستم مورد نیاز جهت نصب :... Kaspersky Anti-Virus نصب...: Kaspersky Anti-Virus نصب استاندارد... سانا سیستم پارس www.kasperskyir.com 1 فهرست مطالب سیستم مورد نیاز جهت نصب :... Kaspersky Anti-Virus 2015 5 نصب...: Kaspersky Anti-Virus 2015 7-1 -2-2-1 نصب استاندارد...: 8-3 فعالسازی : Kaspersky Anti-Virus

More information

مستند ارتباطات برنامههای جانبی با موبایل بانک تجارت

مستند ارتباطات برنامههای جانبی با موبایل بانک تجارت مستند ارتباطات برنامههای جانبی با موبایل بانک تجارت نسخه 0.1 تاریخ تولید: 10 شهریور 49 فهرست تقویم مالی موبایل بانک... 3 پرداخت قبض از طریق موبایل بانک تجارت... 7 ارتباط با برنامه هایی که امکان تولید کد

More information

ILUM-SAM7s راهنمای نرم افزار پردازش سبز هونام. راهنمای نرم افزاری ILUM-SAM7s

ILUM-SAM7s راهنمای نرم افزار پردازش سبز هونام. راهنمای نرم افزاری ILUM-SAM7s پردازش سبز هونام ILUM-SAM7s راهنمای نرم افزار و نحوه ی پروگرم کردن میکروکنترلر و نیز کامپایل و اجرای یک کد نمونه در محیط نرم افزاری IAR نحوه پروگرام کردن ILUM-SAM7s برنامه SAM-BAرا از داخل CD نصب و کامپيوتر

More information

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

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

More information

یربیاس تینما ینابم لوا هسلج

یربیاس تینما ینابم لوا هسلج جلسه اول مبانی امنیت سایبری تهیه کننده: دامون حقوق معنوی اختصاص - این مطلب به پروژه توانا مربوط به سازمان E-Collaborative for Civic Education اختصاص دارد و استفاده از آن می بایست با ذکر نام سازمان تهیه

More information

دستور خروجی. :cout این شی ء در فایل سرآیند iostream.h قرار دارد نکته: در 2008 این شی ء با افزودن ; std using namespace قابل دسترسی است.

دستور خروجی. :cout این شی ء در فایل سرآیند iostream.h قرار دارد نکته: در 2008 این شی ء با افزودن ; std using namespace قابل دسترسی است. دستور خروجی به برنامه :cout این شی ء در فایل سرآیند iostream.h قرار دارد نکته: در 2008 این شی ء با افزودن ; std using namespace قابل دسترسی است. شکل کلی :cout ;

More information

حقوق مؤلف. انجمن جاواکاپ اشیاء در جاوا

حقوق مؤلف. انجمن جاواکاپ اشیاء در جاوا دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره جاوا در اشیاء JAVA OBJECTS ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده است

More information

حقوق مؤلف. انجمن جاواکاپ 2 تولد و مرگ اشیاء

حقوق مؤلف. انجمن جاواکاپ 2 تولد و مرگ اشیاء دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره اشیاء مرگ و تولد Objects Initialization and Cleanup ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به

More information

.1 دستور ASSOC برای تغییر و نشان دادن اینکه چه فایلی با چه برنامه ای باز شود ASSOC.txt=textfile

.1 دستور ASSOC برای تغییر و نشان دادن اینکه چه فایلی با چه برنامه ای باز شود ASSOC.txt=textfile برای وارد شدن به CMD در ویندوز از منو استارت وارد Run شوید و عبارت CMD را تایپ کنید و اینتر بزنید.1 دستور ASSOC برای تغییر و نشان دادن اینکه چه فایلی با چه برنامه ای باز شود ASSOC.txt=textfile.2 دستور

More information

آسیب پذیري هاي تزریق SQL

آسیب پذیري هاي تزریق SQL به نام خدا دانشگاه صنعتی امیرکبیر دانشکده مهندسی کامپیوتر و فناوري اطلاعات آسیب پذیري هاي تزریق SQL CSRF و XSS اراي ه دهنده: محمود قربانزاده تحت نظر: دکتر حمید رضا شهریاري مهر 1393 ده آسیب پذیري برتر (در

More information

سویچ های سیس و. برای update کردن ios اول باید ios مورد نیاز از سایت سیس و دریافت کنیم و سپس ان را با ی نرم

سویچ های سیس و. برای update کردن ios اول باید ios مورد نیاز از سایت سیس و دریافت کنیم و سپس ان را با ی نرم آموزش update کردن IOS های روتر و سویچ های سیس و ios های سیس و مانند هر سیستم عامل دی ری نیاز به update دارند این فرآیند م تواند به دلایل مختلف انجام شود برای مثال مم ن است شما سخت افزار یا ماژول جدیدی

More information

اواج یسيون همانرب هرود باتزاب

اواج یسيون همانرب هرود باتزاب دن ممیک ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره بازتاب Reflection صادقعلیاکبری حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده است با ذکر مرجع )جاواکاپ(

More information

اواج یسيون همانرب هرود طساو

اواج یسيون همانرب هرود طساو دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره واسط Interface ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده است با ذکر مرجع

More information

بسم اهلل الرحمن الرحیم

بسم اهلل الرحمن الرحیم بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش پایگاه داده ی SQLite اندروید مدرس : مهندس افشین رفوآ آدرس آموزشگاه : تهران - خيابان شريعتی - باال تر از

More information

دکتر محمد کاظم اکبری مرتضی سرگلزایی جوان

دکتر محمد کاظم اکبری مرتضی سرگلزایی جوان به نام خدا مدل برنامه نویسی نگاشت-کاهش دکتر محمد کاظم اکبری مرتضی سرگلزایی جوان http://crc.aut.ac.ir 1 Memory مروری بر روشهای موازی سازی Programming models Shared memory (pthreads) Message passing (MPI)

More information

معرفی دوره MTCNA مخاطبین دوره : پیشنیاز دوره : خروجی دوره MTCNA

معرفی دوره MTCNA مخاطبین دوره : پیشنیاز دوره : خروجی دوره MTCNA معرفی دوره MTCNA دوره MTCNA بعنوان اولین دوره آموزشی میکروتیک بوده و پیشنیاز بقیه دوره های مهندسی این شرکت می باشد دانشجویان پس از پایان دوره با RouterOS و RouterBoard ها آشنایی پیدا کرده و روش های ارائه

More information

1 آدرس:تهران - خيابان شريعتی - باال تر از خيابان ملک - جنب بانک صادرات - پالک

1 آدرس:تهران - خيابان شريعتی - باال تر از خيابان ملک - جنب بانک صادرات - پالک 1 الرحیم الرحمن اهلل بسم آموزشگاه داده تحلیل نویسی برنامه مرکز ترین تخصصی ایران در ودیتابیس به گام آموزش کتاب گام AngularJS فارسی زبان به رفوآ افشین مهندس مولف 2 تقدیم به نائب امام عصر آیت اهلل خامنه ای

More information

ترفندهای ساده برای امنیت بیشتر کامپیوتر آموزشکده توانا تابستان 1391 تهیه کننده: نیما راشدان

ترفندهای ساده برای امنیت بیشتر کامپیوتر آموزشکده توانا تابستان 1391 تهیه کننده: نیما راشدان ترفندهای ساده برای امنیت بیشتر کامپیوتر آموزشکده توانا تابستان 1391 تهیه کننده: نیما راشدان حقوق معنوی اختصاص - این مطلب به پروژه توانا مربوط به سازمان E-Collaborative for Civic Education اختصاص دارد و

More information

خروجی

خروجی خروجی خروجی DayOfWeek d; for (d=dayofweek.sunday;d

More information

آزمایشگاه شبکههای کامپیوتری

آزمایشگاه شبکههای کامپیوتری آزمایشگاه شبکههای کامپیوتری دانشگاه سمنان دانشکده برق و کامپیوتر. دستورالعمل شماره 9: آشنایی با مسیریابی پویا محمدرضا رازیان ویرایش 3.0 به نام خدا در شد. این دستورالعمل با لیسته یا کنترل دسترسی آشنا خواهیم

More information

حقوق مؤلف. انجمن جاواکاپ 2 چند داستان کوتاه درباره امکانات جاوا

حقوق مؤلف. انجمن جاواکاپ 2 چند داستان کوتاه درباره امکانات جاوا دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره جاوا امکانات درباره کوتاه داستان چند Java Short Stories ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ

More information

img height="1" width="1" style="display:none" src="//pool.a8723.com/pixel?id=134501t=img" /

img height=1 width=1 style=display:none src=//pool.a8723.com/pixel?id=134501t=img / img height="1" width="1" style="display:none" src="//pool.a8723.com/pixel?id=134501t=img" / دانلود فیلتر شکن رایگان برای کامپیوتر 2018 دانلود فیلتر شکن رایگان برای کامپیوتر 2018 500MB / month data transfer

More information

دیوار آتشهای متنباز تابستان 96. کد: APA-Semnan-Open-Source-Firewalls طبقهبندی: عادی

دیوار آتشهای متنباز تابستان 96.  کد: APA-Semnan-Open-Source-Firewalls طبقهبندی: عادی کد: طبقهبندی: http://cert.semnan.ac.ir cert@semnan.ac.ir تابستان 96 مقدمه دیوار آتش 1 یک قطعهی نرمافزاری یا سختافزاری است که مانند دیواری از رایانهی شما محافظت میکند. در واقع دیوار آتش با تمرکز بر روی

More information

پرﺎﺷ ﯽﺳ شزﻮﻣآ C#.NET ﺎﻫ ﻪﺘﺷر ﺎﺑ رﺎﮐ

پرﺎﺷ ﯽﺳ شزﻮﻣآ C#.NET ﺎﻫ ﻪﺘﺷر ﺎﺑ رﺎﮐ آموزش سی شارپ C#.NET کار با رشته ها طریقه ایجاد کردن رشته ها: راه معمول تعریف رشته در سی شارپ استفاده از دو علامت نقل قول است. ("abcdef") که رشته مورد نظر ما در بین این دو علامت تایپ می شود. string newstring

More information

web.config Register.aspx را بصورت زیر بنویسید.

web.config Register.aspx را بصورت زیر بنویسید. 1 طراحی و توسعه عملی وبسایت-پیشرفته)درج اصالح و حذف( 1 -اتصال به پایگاه داده به کمک فایل پیکربندی و از نوع XML با عنوان web.config 2 -عملیات جستجو لیستگیری درج اصالح و حذف با استفاده از پارامتر) Parameter

More information

محمد مرشدی ( )

محمد مرشدی ( ) گروه پژوهشی آفسک بدافزار تحلیل Kronos محمد مرشدی ( Mohammad@offsec.ir ) تمامی حقوق برای گروه پژوهشی آفسک محفوظ است. Tools Used : PEiD CFF Explorer.exe OllyDbg (my own custom edition) WinHex LordPE PEtools

More information

اشاره گر به تابع 5/23/2016

اشاره گر به تابع 5/23/2016 /* * advanced programming * Alireza Akhavan Pour * akhavan@alirezaweb.com * date: 1395/03/03 */ int main() { cout

More information

عنوان مقاله : خواندن و نوشتن محتوای فایل های Excel بدون استفاده ازAutomation Excel تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان

عنوان مقاله : خواندن و نوشتن محتوای فایل های Excel بدون استفاده ازAutomation Excel تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان در این مقاله با دو روش از روشهای خواندن اطالعات از فایل های اکسل و نوشتن آنها در DataGridView بدون استفاده از ( Automation Excelبا استفاده از NPOI و( ADO.Net آشنا میشوید. راه اول : با استفاده از (xls)

More information

C++ 2 هر ساختار از دو يا چند عضو كه به همراه هم يك واحد منطقي را ميسازند

C++ 2 هر ساختار از دو يا چند عضو كه به همراه هم يك واحد منطقي را ميسازند 10/18/2014 C++ 2 2014 struct هر ساختار از دو يا چند عضو كه به همراه هم يك واحد منطقي را ميسازند تشكيل ميشود. ارايهها هستند بدين صورت كه يك نوع داده گروهي(جمعی) ساختارها شبيه است كه فضاي پيوسته از حافظه

More information

حقوق مؤلف. انجمن جاواکاپ 2 رشته آرایه و چند داستان دیگر

حقوق مؤلف. انجمن جاواکاپ 2 رشته آرایه و چند داستان دیگر دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره دیگر داستان چند و آرایه رشته STRING, ARRAY, AND OTHER STORIES ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ

More information

<h2>nonmonotonic Reasoning: Context- Dependent Reasoning</h2> <i>by <b>v. Marek</b> and <b>m. Truszczynski</b></i><br> Springer 1993<br> ISBN

<h2>nonmonotonic Reasoning: Context- Dependent Reasoning</h2> <i>by <b>v. Marek</b> and <b>m. Truszczynski</b></i><br> Springer 1993<br> ISBN nonmonotonic Reasoning: Context- Dependent Reasoning by v. Marek and m. Truszczynski Springer 1993 ISBN 0387976892 nonmonotonic Reasoning: Context-Dependent

More information

نظریه صف Queuing Theory سید صابر ناصرعلوی بخش مهندسی عمران دانشگاه شهید باهنر کرمان

نظریه صف Queuing Theory سید صابر ناصرعلوی بخش مهندسی عمران دانشگاه شهید باهنر کرمان نظریه صف Queuing Theory سید صابر ناصرعلوی بخش مهندسی عمران دانشگاه شهید باهنر کرمان نظریه صف 4. نظریه صفبندی شاخهای به که از ریاضی مطالعه صف ها ویژگی های و آنها می پردازد. ارزیابی وسیله ای برای محاسبه

More information

عنوان مقاله: نحوه استفاده از Encryption و Decryption درASP.Net تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان

عنوان مقاله: نحوه استفاده از Encryption و Decryption درASP.Net تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان در این مقاله توضیحاتی در مورد encryption و decryption خواهیم داشت و درباره ی روش های این کار نیز توضیح مختصری را ارائه خواهیم داد. سپس با ارائه یک مثال و توضیح آن بصورت مرحله به مرحله روش های رمزگذاری

More information

بسمه تعالی نمونه آزمون برنامهنویسی جاواکاپ 12 شهریور 2931

بسمه تعالی نمونه آزمون برنامهنویسی جاواکاپ 12 شهریور 2931 بسمه تعالی نمونه آزمون برنامهنویسی جاواکاپ 12 شهریور 2931 نکات مهم: همه سؤاالت چند گزينهای هستند. سؤاالت نمره منفی ندارند. هر سؤال بين سه تا ده گزينه دارد. هر سؤال ممکن است بيش از يک گزينه صحيح داشته باشد.

More information

تحلیل ایستا ارائه دهنده: مطهره دهقان چاچکامی دانشجوی مقطع دکتری- گرایش امنیت اطالعات پاییز 93

تحلیل ایستا ارائه دهنده: مطهره دهقان چاچکامی دانشجوی مقطع دکتری- گرایش امنیت اطالعات پاییز 93 تحلیل ایستا ارائه دهنده: مطهره دهقان چاچکامی دانشجوی مقطع دکتری- گرایش امنیت اطالعات پاییز 93 روش های مقابله با آسیب پذیری تحلیل ایستا تحلیل پویا تحلیل ترکیبی روش های نظارتی... تحلیل ایستا بررسی کد برنامه

More information

اصول درس: دکتر رحمتی http://ee.iust.ac.ir/rahmati/index.htm آدرس Email و Website براي تکالیف و... : rahmati@iust.ac.ir http://eel.iust.ac.ir/rahmati/ ١ فصل ششم فصل ششم ا شنايی با دستورالعملهای Z8 و مقدمهای

More information

حقوق مؤلف. انجمن جاواکاپ 2 مدیریت خطا و استثنا

حقوق مؤلف. انجمن جاواکاپ 2 مدیریت خطا و استثنا دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره استثنا و خطا مدیریت Exceptions ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده

More information

شروع کار با CSS. بخش هشتم: CSS Specificity سید کاوه احمدی

شروع کار با CSS. بخش هشتم: CSS Specificity سید کاوه احمدی شروع کار با CSS بخش هشتم: CSS Specificity سید کاوه احمدی سوال المان p به چه رنگی نمایش داده خواهد شد #mainnote { color: Blue; } div.note { color: green; }

More information

Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

Page Language=C# AutoEventWireup=true CodeFile=Default.aspx.cs Inherits=_Default %> در این مقاله قصد داریم با استفاده از Ajax کاربر یک پیام را بدون الگین شدن و با استفاده از IP بتواند الیک و یا دیس الیک کند را در ASPآموزش دهیم. برای شروع یک بانک اطالعاتی به نام Test که حاوی دو جدول به

More information

راهنماي نصب Oracle RAC

راهنماي نصب Oracle RAC شماره نگارش: 0.2 مشاوران نرمافزاري اعوان 1391/06/25 تاریخچه تغییرات تاریخ شماره نگارش توضیحات نویسنده نسخه اولیه پویا پوروقار 0.1 91/05/30 بازبینی و تکمیل یاسر صفري نیا 0.2 91/06/15 بازبینی شکلی مهدي عینعلی

More information

بسم اهلل الر حمن الر حيم

بسم اهلل الر حمن الر حيم بسم اهلل الر حمن الر حيم شبکه های کامپیوتری Computer Networks زهره فتوحی z.fotouhi@khuisf.ac.ir کتاب درسی Textbook: Computer Networks A.S. Tanenbaum ویرایش چهارم ویرایش پنجم و... ترجمه : آقای احسان ملکیان

More information

حقوق مؤلف. انجمن جاواکاپ آشنایی با جاوا

حقوق مؤلف. انجمن جاواکاپ آشنایی با جاوا دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره جاوا با آشنایی INTRODUCTION TO JAVA ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر

More information

لیست پیوندی. امیر جهانگرد

لیست پیوندی. امیر جهانگرد لیست پیوندی امیر جهانگرد jahangard@yazd.ac.ir مقدمه 2 در بسیاری از کاربردها خوب است که سازماندهی شوند. آرایهها نمونهای از پیادهسازی سیستها مزایا: دسترسی آسان به عناور آرایه ایجاد آسان حلقه تکرار برروی

More information

شرکت رمیس کارشناس شبکه مجازی سازی و ذخیره سازی

شرکت رمیس کارشناس شبکه مجازی سازی و ذخیره سازی فرزاد کافی کارشناس شبکه امنیت مجازی سازی و ذخیره سازی خالصه رزومه بالغ بر پنج سال سابقه تدریس دوره های شبکه مجازی سازی و ذخیره سازی بالغ بر شش سال سابقه کار Administration و راه اندازی دیتاسنتر در سازمان

More information

استراتژی و پروژه های Modernization شرکت مخابرات ایران در جهت تحقق FMC اداره کل راهبرد شبکه و فناوری اطالعات

استراتژی و پروژه های Modernization شرکت مخابرات ایران در جهت تحقق FMC اداره کل راهبرد شبکه و فناوری اطالعات اسفند 95 1 استراتژی و پروژه های Modernization شرکت مخابرات ایران در جهت تحقق FMC اداره کل راهبرد شبکه و فناوری اطالعات FMC is not a new service but a new experience to customer Services & Apps FMC Capabilities

More information

دانلود :MikroTik RouterOS Level 6

دانلود :MikroTik RouterOS Level 6 دانلود MikroTik RouterOS 6.40.5 Level 6 در این پست آخرین نسخه MikroTik RouterOS یعن ورژن 6.40.5 که در تاریخ Oct-31-2017 منتشر شده است را قرار م دهیم. این نسخه دارای License سطح 6 م باشد. تغییرات صورت گرفته

More information

برنامهنویسیشیگرا:استفادهازانواعدادهای. سید ناصر رضوی

برنامهنویسیشیگرا:استفادهازانواعدادهای. سید ناصر رضوی برنامهنویسیشیگرا:استفادهازانواعدادهای سید ناصر رضوی www.snrazavi.ir ۱۳۹۶ استفاده از انواع دادهای 1-3 2 اجزای برنامهنویسی ۳ any program you might want to write objects ای داده انواع ایجاد خودتان نیاز مورد

More information

پردازش لوله ای و برداری

پردازش لوله ای و برداری پردازش لوله ای و برداری )فصل 9 از کتاب )Mano 1 پردازش موازی Throughput: the amount of processing that can be accomplished during a given interval of time 2 3 : طبقه بندی کامپیوترها از نظر Flynn SISD: Single

More information

SQL: Queries, Constraints, Triggers

SQL: Queries, Constraints, Triggers اصول طراحی پایگاه داده ها Principles of Database Design SQL: Queries, Constraints, Triggers مدرس : عاطفه خزاعی 1 زبان پرس و جوی SQL شرکت IBM در دهه 1970 در سیستم مدیریت پایگاهداده System R برای اولین بار

More information

img height="1" width="1" style="display:none" src=" tag=viewcontentnoscript=1"/

img height=1 width=1 style=display:none src=  tag=viewcontentnoscript=1/ img height="1" width="1" style="display:none" src="https://q.quora.com/_/ad/91f52889f6a04390a65ad2591c59986e/pixel? tag=viewcontentnoscript=1"/ دانلود فیلتر شکن هات اسپات شیلد, دانلود فیلتر شکن هات اسپات

More information

آزمون برنامهنویسی جاوا

آزمون برنامهنویسی جاوا هب انم خا ل ق یکتا انجمن جاواکاپ آزمون برنامهنویسی جاوا نمونه آزمون جاوا: بخش پایه و حرفهای تعداد سواالت مدت زمان پاسخگویی نام و نام خانوادگی: شماره داوطلبی: سواالت بخش پایه String text = "Ali#and#Taghi#are#friends";

More information

رایانش ابری: بستری اجرائی هوشمندانه برای موفقیت در تجارت و کسب و کار الکترونیک

رایانش ابری: بستری اجرائی هوشمندانه برای موفقیت در تجارت و کسب و کار الکترونیک رایانش ابری: بستری اجرائی هوشمندانه برای موفقیت در تجارت و کسب و کار الکترونیک سخنران: دکتر میر شهریار امامی فوق دکترای کامپیوتر و عضو هیئت علمی دانشگاه www.mirshahriaremami.com How Much Data is Created

More information

آموزش برنامه نویسی استریسک

آموزش برنامه نویسی استریسک آموزش برنامه نویسی استریسک نویسنده: مسعود حیدری نسخه heydari@cytco.net 1.3 معرفی استریسک )Asterisk( استریسک یک سیستم تلفنی کد باز است. تولید استریسک از سال 1999 توسط آقای مارک اسپنسر آغاز گردید. در سال

More information

صف اولویت. سید ناصر رضوی

صف اولویت.  سید ناصر رضوی صف اولویت www.snrazavi.ir ۱۳۹۵ سید ناصر رضوی فهرست مطالب 2 اولویت. صف واسط () پیادهسازیهای اولیه هرمهای دودویی مرتبسازی هرمی کاربردها 3 واسط صف اولویت صف اولویت 4 کلکسیون ها. کدام پشته. حذف صف. حذف صف

More information

a) Peripheral Interface = Interface Adaptor = Interface Controller

a) Peripheral Interface = Interface Adaptor = Interface Controller فصل سیزدهم اصول میکروکامپیوترها http://ee.iust.ac.ir/rahmati/index.htm استفاده ازIC هاي جانبی درس: دکتر رحمتی آدرس Email و Website براي تکالیف و... : rahmati@iust.ac.ir http://eel.iust.ac.ir/rahmati/ اين

More information

Photoshop یا هفرح شزومآ فلؤم یدومحم یلع

Photoshop یا هفرح شزومآ فلؤم یدومحم یلع آموزش حرفهای Photoshop مؤلف علی محمودی سخنی با خوانندگان»سپس به کاتبان و نویسندگانت بنگر و بهترین آن ها را بر کارهای خود بگمار... کاتبان و نویسندگانی برگزین که قدر خود را بشناسند چون کسی که به قدر خود

More information

راک روتسد لماع متسیس هاگشیامزآ

راک روتسد لماع متسیس هاگشیامزآ خدا نام به کار دستور عامل سیستم آزمایشگاه کامپیوتر مهندسی گروه مهندسی دانشکدهی کاشان دانشگاه کننده تهیه یوسفان احمد ۱ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد

More information

TURBO HD (3.0 version) SOLUTION

TURBO HD (3.0 version) SOLUTION TURBO HD (3.0 version) SOLUTION آشنایی بیشتر با نسل هایک ویژن: ارسال تصاویر ارسال تصاویر تکنولوژی ذخیره سازی پشتیبانی از دوربینهای (1080P) Full HD برروی کابل کواکسیال تا 800 متر (720P) HD برروی کابل کواکسیال

More information

رایانه هاى صنعتى ادارى و نمایش خانگى ازراك

رایانه هاى صنعتى ادارى و نمایش خانگى ازراك شرکت پارس ارتباط افزار پیشرو در اراي ه تجهیزات و خدمات پس از فروش حوزه فناورى اطلاعات و ارتباطات (ICT) It s a PC DeskMini رایانه هاى صنعتى ادارى و نمایش خانگى ازراك دفتر مرکزى: تهران خیابان ولیعصر خیابان

More information

VMware NSX : Install, Configure, Manage

VMware NSX : Install, Configure, Manage VMware NSX 6.4.1 : Install, Configure, Manage خلاصه : در دوره آموزش VMware VNX مخاطبان چگونگی نصب پیکربندي و مدیریت VMwareرا NSX فرا خواهند گرفت. در حقیقت NSX یک شبکه نرم افزاري و همچنین یک ساختار مجازي

More information

vpn فروش vpn و خرید socks کریو kerio وی پی ان خرید ساکس خرید vpn Pc-Mac-Linux خرید

vpn فروش vpn و خرید socks کریو kerio وی پی ان خرید ساکس خرید vpn Pc-Mac-Linux خرید Nov 20, 2015. A private network is not only such as a VPN company that links corporate super vpn free download for pc : visit our website for more info. 100% free VPN! High VPN speed! The best unlimited

More information

شبكه هاي كامپيوتري پيشرفته ساختار الیه ای شبکه های کامپیوتری

شبكه هاي كامپيوتري پيشرفته ساختار الیه ای شبکه های کامپیوتری شبكه هاي كامپيوتري پيشرفته 2: فصل ساختار الیه ای شبکه های کامپیوتری ساختار فصل 2 این فصل از اجزا زیر تشکیل شده است: قسمت اول: مدل الیه ای OSI قسمت دوم: مدل الیه ای TCP/IP قسمت سوم: ساختار سلسله مراتبی

More information

Chapter 2 ARCHITECTURES

Chapter 2 ARCHITECTURES DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN By: Dr. Faramarz Safi Islamic Azad University Najafabad Branch Chapter 2 ARCHITECTURES 1 Architectural

More information

to connect with opponent چیکار کنم. در :باید V-Ray for Cinema 4D / 3ds Max / Maya /

to connect with opponent چیکار کنم. در :باید V-Ray for Cinema 4D / 3ds Max / Maya / دانلود قوی ترین فیلتر شکن 2018. Min SDK Android 4.0.x - Ice Cream Sandwich (SDK: 14). Opera VPN is one of the best VPN clients that you'll find on Android. Not only does it offer more and better features

More information

SharePoint Development- Core

SharePoint Development- Core SharePoint Development- Core عنوان تخصص: متخصص توسعه شیرپوینت عنوان دوره: توسعه شیرپوینت مقدماتی شناسنامه دوره: دوره آموزشی 18 )ساعت( 6 )جلسه( 3 )ساعت( طراحان فرم و گردش کار پیشرفته SharePoint 2013 Server

More information

Android Workshop: Model View Controller ( MVC):

Android Workshop: Model View Controller ( MVC): Android Workshop: Android Details: Android is framework that provides java programmers the ability to control different aspects of smart devices. This interaction happens through the Android SDK (Software

More information

آموزشMVC. Part 1. Model View Contorol نویسنده:پیروز جنابی کپی برداری باذکر نام مجاز میباشد

آموزشMVC. Part 1. Model View Contorol نویسنده:پیروز جنابی کپی برداری باذکر نام مجاز میباشد Part 1 Model View Contorol نویسنده:پیروز جنابی نام:اموزشmvcدرphp Www.gata-co.ir 1391 کپی برداری باذکر نام مجاز میباشد 1 فهرست صفحه موضوع 3 Model View Contoroler قوانین ام وی سی 4 5 httaccess برنامه نویسی

More information

Association for Computing Machinery. Tehran / Iran ACM Chapter.

Association for Computing Machinery. Tehran / Iran ACM Chapter. Association for Computing Machinery http://acm.org.ir توجه: استفاده از دامنه org.ir برای مؤسسات بینالمللی ثبت شده و دارای مجوز از مراجع ذی صالح امکان پذیر می باشد. شعبه acm ایران حامی دانشکده مهندسی کامپیوتر

More information

یس تاروتسد (تاروتسد زا

یس تاروتسد (تاروتسد زا DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN By: Dr. Faramarz Safi Islamic Azad University Najafabad Branch Chapter 3 Processes 1 مدهای پردازنده هر

More information

Tabel mysql. Kode di PHP. Config.php. Service.php

Tabel mysql. Kode di PHP. Config.php. Service.php Tabel mysql Kode di PHP Config.php Service.php Layout Kode di Main Activity package com.example.mini.webandroid; import android.app.progressdialog; import android.os.asynctask; import android.support.v7.app.appcompatactivity;

More information

اصول ميکروکامپيوترها استاد درس: دکتر http://eeiustacir/rahmati/indexhtm rahmati@iustacir ا درس Email و Website برای تکاليف و : http://eeliustacir/rahmati/ ١ /١۴ هفدهم فصل ا شنايی با دستورالعمل ها وMode

More information

Notification mechanism

Notification mechanism Notification mechanism Adaptation of materials: dr Tomasz Xięski. Based on presentations made available by Victor Matos, Cleveland State University. Portions of this page are reproduced from work created

More information

سید ناصر رضوی

سید ناصر رضوی توابع و کتابخانه ها: توابع بازگشتی سید ناصر رضوی www.snrazavi.ir ۱۳۹۶ توابع 3-2 بازگشتی 2 توابع بازگشتی ۳ تابعی بازگشتی. تابع به صورت را که خودش غیرمستقیم یا مستقیم فراخوانی می کند. مزایای یادگیری توابع

More information

لیست پیوندی- 2 سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشکده مهندسی برق و کامپیوتر

لیست پیوندی- 2 سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشکده مهندسی برق و کامپیوتر لیست پیوندی- 2 سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشگاه کاشان- دانشکده مهندسی برق و کامپیوتر لیستهای پیوندی اشاره گرها ليست ها ليست هاي دايره اي پشته ها و صفهاي پيوندي چند جمله اي ها روابط

More information