بسم اهلل الرحمن الرحیم
|
|
- Roland Morton
- 5 years ago
- Views:
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 جدول های HTML به نویسندگان وب اجازه می دهند تا
More informationبسم اهلل الرحمن الرحیم
بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران در آموزش Intent اندروید (قسمت سوم ( مدرس : مهندس افشین رفوآ آدرس آموزشگاه : تهران - خيابان شريعتی - باال تر از
More information12. تست activity برنامه
بسم اهلل الرحمن الرحيم آموزشگاه تحليل داده تخصصی ترين مرکز برنامه نويسی و ديتابيس در ايران آزمايش برنامه های کاربردی اندرويد با بهره گيری از چهارچوب نرم افزاریframework / Android test مدرس : مهندس افشين
More informationابتدا نصب بودن بسته VConfig که برای راه اندازی VLAN مورد نیاز است را بررسی کنید:
اعطا ما مدیریت و شبکه به را تری افزون وری بهره و کارایی بیشتر امنیت تر آسان مدیریت VLAN می کند.دلیل و توجیه استفاده از VLAN بنا به نیاز و طراحی شبکه متغییر است VLAN. در تعریف ساده تقسیم شبکه موجود به چندین
More informationبسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. آموزش ایجاد کنترل های سفارشی / controls ASP.
و< بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش ایجاد کنترل های سفارشی / controls ASP.NET Custom مدرس : مهندس افشین رفوآ آموزش ایجاد کنترل های سفارشی
More informationپایتون جهت دسترسی به دیتابیس از توابع کتابخانه ای DB-API استفاده کرده و interface هایی که برای
MySQL و دسترسی به دیتابیس Python پایتون جهت دسترسی به دیتابیس از توابع کتابخانه ای DB-API استفاده کرده و interface هایی که برای اتصال به پایگاه داده و مدیریت داده های اپلیکیشن بایستی پیاده سازی شود بر
More informationبسم اهلل الرحمن الرحیم
بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش از استفاده Drawable ها در اندروید مدرس: مهندس افشین رفوآ در این بخش به کاربرد drawable ها در اندروید می
More informationMODBUS 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 این دستور وضعیت پروتکلها و پورتهای ارتباطی TCP/IP را نمایش می دهد. در صورتی که این دستور بدون هیچ سوئیچی استفاده شود این دستور کلیه پورتها و ارتباطات خروجی فعال را نمایش می دهد.
More information20. تمرين : ساخت برنامه ی تبديل دما
بسم اهلل الرحمن الرحيم آموزشگاه تحليل داده تخصصی ترين مرکز برنامه نويسی و ديتابيس در ايران برنامه نويسی تحت اندرويد با 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 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 تنظیم کرد. Static Dynamic - - حتما تمامی خوانندگان با روش static آشنایی دارند. همان روش وارد کردن آدرس ها بصورت
More informationبسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران قابل جابجایی مدرس : مهندس افشین رفوآ
بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران قابل جابجایی مدرس : مهندس افشین رفوآ قابل جابجایی jqueryui متد draggable() را برای ساخت عنصر قابل جابجایی DOM
More informationآموزش تصویری نصب Kerio Control. شرکت Bitdefender تعویض کرده و به طور کامل هم از سخت افزار های 64 بیت حمایت می نه (که
دانلود Kerio Control Installer 9.2.2-2172 امروزه دغدغه بسیاری از ادمین های شب ه این شده است که چ ونه م توان پهنای باند مصرف توسط کاربران را کنترل کرد. نرم افزار های بسیاری به منظور کنترل و مانیتور کردن
More informationThe no service password-recovery Command for Secure ROMMON Configuration
دستور no service password-recovery قابلیتهای امنیتی ROMMON را فعال میکند ولی در هنگام استفاده از این دستور باید نهایت دقت رو انجام بدید و گرنه با دردسرهای زیادی مواجه خواهید شد. این دستور در جایی کاربرد
More informationمرتب سازی. (sort) : ویرایش احمدرضا غدیرزاده دانشجوی رشته ی مهندسی کامپیوتر
مرتب سازی (sort) : ویرایش احمدرضا غدیرزاده دانشجوی رشته ی مهندسی کامپیوتر تعریف کلید بخشی از هر رکورد که مرتبسازی بر اساس آن انجام میگیرد. به طور کلی الگوریتمهای مرتبسازی را میتوان به دو گروه تقسیم کرد:
More informationبسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران. Web service چیست و چه کاربردی دارد مدرس : مهندس افشین رفوآ
بسم الله الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران Web service چیست و چه کاربردی دارد مدرس : مهندس افشین رفوآ Web service چیست و چه کاربردی دارد یک web service در
More informationبسم اهلل الرحمن الرحیم
بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران آموزش رشته ها در سی شارپ مدرس : مهندس افشین رفوآ آموزش رشته ها در سی شارپ در #C می توانید از رشته ها به عنوان
More informationaccess-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.برای تشخیص ربات ها از انسان ها ایجاد شده اند که با استفاده از آن ربات ها نتوانند به سایت وارد
More informationبسم اهلل الرحمن الرحیم
بسم اهلل الرحمن الرحیم آموزشگاه تحلیل داده تخصصی ترین مرکز برنامه نویسی و دیتابیس در ایران نحوه شمارش در حلقه مدرس : مهندس افشین رفوآ آدرس آموزشگاه:تهران - خيابان شريعتی - باال تر از خيابان ملک - جنب بانک
More informationفهرست مطالب. سیستم مورد نیاز جهت نصب :... 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 informationILUM-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 ;
More informationحقوق مؤلف. انجمن جاواکاپ اشیاء در جاوا
دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره جاوا در اشیاء JAVA OBJECTS ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده است
More informationحقوق مؤلف. انجمن جاواکاپ 2 تولد و مرگ اشیاء
دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره اشیاء مرگ و تولد Objects Initialization and Cleanup ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به
More information.1 دستور ASSOC برای تغییر و نشان دادن اینکه چه فایلی با چه برنامه ای باز شود ASSOC.txt=textfile
برای وارد شدن به CMD در ویندوز از منو استارت وارد Run شوید و عبارت CMD را تایپ کنید و اینتر بزنید.1 دستور ASSOC برای تغییر و نشان دادن اینکه چه فایلی با چه برنامه ای باز شود ASSOC.txt=textfile.2 دستور
More informationآسیب پذیري هاي تزریق SQL
به نام خدا دانشگاه صنعتی امیرکبیر دانشکده مهندسی کامپیوتر و فناوري اطلاعات آسیب پذیري هاي تزریق SQL CSRF و XSS اراي ه دهنده: محمود قربانزاده تحت نظر: دکتر حمید رضا شهریاري مهر 1393 ده آسیب پذیري برتر (در
More informationسویچ های سیس و. برای 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 بعنوان اولین دوره آموزشی میکروتیک بوده و پیشنیاز بقیه دوره های مهندسی این شرکت می باشد دانشجویان پس از پایان دوره با RouterOS و RouterBoard ها آشنایی پیدا کرده و روش های ارائه
More information1 آدرس:تهران - خيابان شريعتی - باال تر از خيابان ملک - جنب بانک صادرات - پالک
1 الرحیم الرحمن اهلل بسم آموزشگاه داده تحلیل نویسی برنامه مرکز ترین تخصصی ایران در ودیتابیس به گام آموزش کتاب گام AngularJS فارسی زبان به رفوآ افشین مهندس مولف 2 تقدیم به نائب امام عصر آیت اهلل خامنه ای
More informationترفندهای ساده برای امنیت بیشتر کامپیوتر آموزشکده توانا تابستان 1391 تهیه کننده: نیما راشدان
ترفندهای ساده برای امنیت بیشتر کامپیوتر آموزشکده توانا تابستان 1391 تهیه کننده: نیما راشدان حقوق معنوی اختصاص - این مطلب به پروژه توانا مربوط به سازمان E-Collaborative for Civic Education اختصاص دارد و
More informationآزمایشگاه شبکههای کامپیوتری
آزمایشگاه شبکههای کامپیوتری دانشگاه سمنان دانشکده برق و کامپیوتر. دستورالعمل شماره 9: آشنایی با مسیریابی پویا محمدرضا رازیان ویرایش 3.0 به نام خدا در شد. این دستورالعمل با لیسته یا کنترل دسترسی آشنا خواهیم
More informationحقوق مؤلف. انجمن جاواکاپ 2 چند داستان کوتاه درباره امکانات جاوا
دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره جاوا امکانات درباره کوتاه داستان چند Java Short Stories ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ
More informationimg 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 طبقهبندی: عادی
کد: طبقهبندی: http://cert.semnan.ac.ir cert@semnan.ac.ir تابستان 96 مقدمه دیوار آتش 1 یک قطعهی نرمافزاری یا سختافزاری است که مانند دیواری از رایانهی شما محافظت میکند. در واقع دیوار آتش با تمرکز بر روی
More informationپرﺎﺷ ﯽﺳ شزﻮﻣآ C#.NET ﺎﻫ ﻪﺘﺷر ﺎﺑ رﺎﮐ
آموزش سی شارپ C#.NET کار با رشته ها طریقه ایجاد کردن رشته ها: راه معمول تعریف رشته در سی شارپ استفاده از دو علامت نقل قول است. ("abcdef") که رشته مورد نظر ما در بین این دو علامت تایپ می شود. string newstring
More informationweb.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
/* * advanced programming * Alireza Akhavan Pour * akhavan@alirezaweb.com * date: 1395/03/03 */ int main() { cout
More informationعنوان مقاله : خواندن و نوشتن محتوای فایل های Excel بدون استفاده ازAutomation Excel تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان
در این مقاله با دو روش از روشهای خواندن اطالعات از فایل های اکسل و نوشتن آنها در DataGridView بدون استفاده از ( Automation Excelبا استفاده از NPOI و( ADO.Net آشنا میشوید. راه اول : با استفاده از (xls)
More informationC++ 2 هر ساختار از دو يا چند عضو كه به همراه هم يك واحد منطقي را ميسازند
10/18/2014 C++ 2 2014 struct هر ساختار از دو يا چند عضو كه به همراه هم يك واحد منطقي را ميسازند تشكيل ميشود. ارايهها هستند بدين صورت كه يك نوع داده گروهي(جمعی) ساختارها شبيه است كه فضاي پيوسته از حافظه
More informationحقوق مؤلف. انجمن جاواکاپ 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
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 سید صابر ناصرعلوی بخش مهندسی عمران دانشگاه شهید باهنر کرمان نظریه صف 4. نظریه صفبندی شاخهای به که از ریاضی مطالعه صف ها ویژگی های و آنها می پردازد. ارزیابی وسیله ای برای محاسبه
More informationعنوان مقاله: نحوه استفاده از Encryption و Decryption درASP.Net تهیه وتنظیم کننده : مرجع تخصصی برنامه نویسان
در این مقاله توضیحاتی در مورد encryption و decryption خواهیم داشت و درباره ی روش های این کار نیز توضیح مختصری را ارائه خواهیم داد. سپس با ارائه یک مثال و توضیح آن بصورت مرحله به مرحله روش های رمزگذاری
More informationبسمه تعالی نمونه آزمون برنامهنویسی جاواکاپ 12 شهریور 2931
بسمه تعالی نمونه آزمون برنامهنویسی جاواکاپ 12 شهریور 2931 نکات مهم: همه سؤاالت چند گزينهای هستند. سؤاالت نمره منفی ندارند. هر سؤال بين سه تا ده گزينه دارد. هر سؤال ممکن است بيش از يک گزينه صحيح داشته باشد.
More informationتحلیل ایستا ارائه دهنده: مطهره دهقان چاچکامی دانشجوی مقطع دکتری- گرایش امنیت اطالعات پاییز 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 مدیریت خطا و استثنا
دن یک م م ی نجاواکاپتقد م نج ا جاوا نويسی برنامه دوره استثنا و خطا مدیریت Exceptions ری کب یا عل صادق حقوق مؤلف کلیه حقوق این اثر متعلق به است بازنشر یا تدریس آنچه توسط جاواکاپ و به صورت عمومی منتشر شده
More informationشروع کار با CSS. بخش هشتم: CSS Specificity سید کاوه احمدی
شروع کار با CSS بخش هشتم: CSS Specificity سید کاوه احمدی سوال المان p به چه رنگی نمایش داده خواهد شد #mainnote { color: Blue; } div.note { color: green; }
More informationPage Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
در این مقاله قصد داریم با استفاده از Ajax کاربر یک پیام را بدون الگین شدن و با استفاده از IP بتواند الیک و یا دیس الیک کند را در ASPآموزش دهیم. برای شروع یک بانک اطالعاتی به نام Test که حاوی دو جدول به
More informationراهنماي نصب 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 اداره کل راهبرد شبکه و فناوری اطالعات
اسفند 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 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 informationSQL: Queries, Constraints, Triggers
اصول طراحی پایگاه داده ها Principles of Database Design SQL: Queries, Constraints, Triggers مدرس : عاطفه خزاعی 1 زبان پرس و جوی SQL شرکت IBM در دهه 1970 در سیستم مدیریت پایگاهداده System R برای اولین بار
More informationimg 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 informationa) 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 informationPhotoshop یا هفرح شزومآ فلؤم یدومحم یلع
آموزش حرفهای Photoshop مؤلف علی محمودی سخنی با خوانندگان»سپس به کاتبان و نویسندگانت بنگر و بهترین آن ها را بر کارهای خود بگمار... کاتبان و نویسندگانی برگزین که قدر خود را بشناسند چون کسی که به قدر خود
More informationراک روتسد لماع متسیس هاگشیامزآ
خدا نام به کار دستور عامل سیستم آزمایشگاه کامپیوتر مهندسی گروه مهندسی دانشکدهی کاشان دانشگاه کننده تهیه یوسفان احمد ۱ کاشان دانشگاه مهندسی دانشکدهی کامپیوتر گروه عامل سیستم آزمایشگاه گزارش یوسفان احمد
More informationTURBO 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 informationVMware NSX : Install, Configure, Manage
VMware NSX 6.4.1 : Install, Configure, Manage خلاصه : در دوره آموزش VMware VNX مخاطبان چگونگی نصب پیکربندي و مدیریت VMwareرا NSX فرا خواهند گرفت. در حقیقت NSX یک شبکه نرم افزاري و همچنین یک ساختار مجازي
More informationvpn فروش 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 informationChapter 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 informationto 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 informationSharePoint Development- Core
SharePoint Development- Core عنوان تخصص: متخصص توسعه شیرپوینت عنوان دوره: توسعه شیرپوینت مقدماتی شناسنامه دوره: دوره آموزشی 18 )ساعت( 6 )جلسه( 3 )ساعت( طراحان فرم و گردش کار پیشرفته SharePoint 2013 Server
More informationAndroid 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 نویسنده:پیروز جنابی کپی برداری باذکر نام مجاز میباشد
Part 1 Model View Contorol نویسنده:پیروز جنابی نام:اموزشmvcدرphp Www.gata-co.ir 1391 کپی برداری باذکر نام مجاز میباشد 1 فهرست صفحه موضوع 3 Model View Contoroler قوانین ام وی سی 4 5 httaccess برنامه نویسی
More informationAssociation 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 informationTabel 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 informationNotification 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 سید مهدی وحیدی پور با تشکر از دکتر جواد سلیمی دانشگاه کاشان- دانشکده مهندسی برق و کامپیوتر لیستهای پیوندی اشاره گرها ليست ها ليست هاي دايره اي پشته ها و صفهاي پيوندي چند جمله اي ها روابط
More information