زکات علم

زَکاةُ العِلمِ أن تُعَلِّمَهُ عِبادَ اللّه‏ِ امام باقر (ع)
زکات علم

مطالبی در زمینه کامپیوتر و علاقه مندی های شخصی من مطالب این وبلاگ غالبا مطالبی ست که در جای جای اینترنت کتاب یا دانشته های شخصی خودم می باشد که به عنوان مرجعی برای رجوع دوباره در اینجا جمع آوری شده اند .
ehsunitd.ir personal website

پیوندها

۳ مطلب در تیر ۱۳۹۳ ثبت شده است

این روزها تب لاغری و کاهش وزن خیلی تند است و در این میان افرادی که لاغرند و می‌خواهند چند کیلویی چاق شوند فراموش می‌شوند. اگر در این بخش در ارائه‌ی مطلب به این عزیزان تأخیر یا کوتاهی شده است عذرخواهی ما را بپذیرید.

برای افرادی که چاق هستند لاغر شدن کار آسانی نیست و برای افرادی که لاغرند و دوست دارند چند کیلویی اضافه وزن داشته باشند قضیه کاملاً برعکس است و چاق شدن کار راحتی نیست.

اساساً زندگی یعنی تلاش برای رسیدن به خواسته‌ها هر چند هم که سخت باشند.

برای اینکه چاق شوید و به اندام ایده‌آل خود نزدیک شوید در گام اول باید صبور باشید و به تغذیه‌ی خود اهمیت ویژه ای بدهید. حتماً شما هم از اطرافیانتان توصیه های گوناگونی برای چاق شدن شنیده‌اید. اصلی‌ترین و مهم‌ترین توصیه ما برای شما این است که زیاد غذا بخورید و حسابی ورزش کنید. برای چاق شدن رژیم غذایی درست و ورزش از اهمیت بالایی برخوردار است. برای آشنایی با توصیه های دیگر ما مطالعه‌ی این مطلب را از دست ندهید.

  • ehsan gholami

«1» port چیست‌؟                                                                                                                                                              فهرست مطالب

بطور کلی هر کامپیوتر  ( به ازای هر کارت شبکه اش ) یک IP دارد، که از طریق این IP‌ می توان به ماشین فوق دسترسی پیدا نمود. این آدرس ( IP ) به 653535 پورت ( PORT ) تقسیم می شود. PORT یک مفهوم منطقی است که به کمک آن می توان بطور همزمان با چندین ماشین دیگر، ارتباط برقرار نمود.

PORT ها به دو گروه رزرو شده (پورت های بین 1 تا 1024) و غیر رزرو شده (سایر پورت ها) تقسیم می شوند. پورت های رزرو شده برای کاربردهای استاندارد مورد استفاده قرار می گیرند. مانند :

 

USAGE

PORT NUMBER

SMTP

25

HTTP

80

POP

110

News Server

119

 

 

در برنامه های Server/ Client از PORT های غیر رزرو شده که آزاد باشند ( مورد استفاده سایر برنامه ها نباشند) می توان جهت برقراری ارتباطات مورد نیاز، استفاده نمود. یعنی می تواند به ازای هر پورت با یک برنامه ارتباط برقرار کند.

 

TCP or UDP Port

 

======================================

«2» socket چیست؟                                                                                                                                                          فهرست مطالب

سوکت یک ارتباط قابل اطمینان جهت انتقال داده ها بین دو host (ماشین مورد نظر) می باشد. سوکت، برنامه نویسان را از پیچیده گی های فرآیند برقراری ارتباط بین دو ماشین مانند جزئیات کد کردن بسته ها، فرآیند ارسال داده ها در شبکه، ارسال مجدد بسته های خراب و ... دور می سازد و برنامه نویسان به راحتی قادر به توسعه برنامه ها یتحت شبکه می باشند.

یک سوکت در حقیقت ترکیبی از IP یا  HostName و یک شماره پورت ( Port Number ) از آن IP می باشد.

بطور کلی یک سوکت چهار عمل اصلی زیر را انجام می دهد:

    «1» اتصال به ماشین راه دور

    «2» ارسال داده ها

    «3» دریافت داده ها

    «4» بستن یا خاتمه اتصال

توجه به این نکته مهم می باشد که یک سوکت در یک زمان فقط قادر است تا فقط با یک ماشین (host) ارتباط برقرار کند.

با توجه به تعاریف فوق، می توان به راحتی تفاوت PORT و SOCKET‌ را درک نمود.

======================================

   «3» پروتکل Transmission Control Protocol )    TCP )                                                                                                              فهرست مطالب

پروتکلی برای انتقال داده ها (سرویس ها) بین دو ماشین با ضریب اعتماد بالا می باشد. چنین ارتباطی (بین دو نقطه) را Unicast می نامند. ‌ TCP پروتکل اتصال گرا ( Connection - Oriented ) است یعنی ارتباط برقرار شده بین کلاینت و سرور تا پایان روند انتقال اطلاعات باقی می ماند. این پروتکل در مواردی که اطمینان از انتقال صحیح داده ها بین مبدا و مقصد بسیار مهم است ( مانند زمان دانلود کردن داده ها) مورد استفاده قرار می گیرد. در چنین حالتی کامپیوتر مقصد با دریافت صحیح هر بسته از مبدا یک Acknowledgment‌ به منظور اطلاع از دریافت صحیح و بی عیب به ماشین مبدا ارسال می کند. اگر پیغام اعلام وصول فوق به مبدا نرسد، مبدا دوباره بسته را ارسال می کند.

======================================

   «4» پروتکل User Datagram Protocol )    UDP )                                                                                                                       فهرست مطالب

پروتکل فوق یک پروتکل بدون اتصال (Connection - Less) می باشد. این پروتکل امکان توزیع داده ها را با سرعت بالا تضمین می کند، ولی هیچ تضمینی در جهت صحت ارسال داده ها و دریافت آنها توسط ماشین مقصد ارائه نمی دهد. بر اساس شرایط این پروتکل اگر در روند انتقال اطلاعات مشکلی پیش آید و بسته ارسال شده به صورت کامل به مقصد نرسد،بسته فوق مجددا برای کامپیوتر مقصد ارسال نخواهد شد.

«نکته» از پروتکل فوق به منظور انتقال داده ها به چندین ماشین با استفاده از BroadCast‌ و یا MultiCast استفاده می شود.

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

======================================

«5» تفاوت serverSocket و datagramSocket چیست؟                                                                                                             فهرست مطالب

بسته به نوع برنامه ای که ایجاد می کنیم، می توان از datagramSocket‌ یا  serverSokect استفاده نماییم. اگر برنامه ما بر مبنای پروتکل UDP باشد ازdatagramSocket‌  و اگر بر مبنای پروتکل TCP باشد از serverSokect استفاده می کنیم. همانطور که گفته شد، پروتکل TCP جهت ارسال داده ها همراه با تضمین موفقیت آمیز بودن عمل انتقال مانند دانلود و از پروتکل UDP جهت ارسال داده ها با سرعت بالا، اتصال به چند ماشین به طور همزمان و بدون تضمین موفقیت آمیز بودن عمل انتقال مانند کاربردهای RealTime‌  از جمله ویدئو کنفرانس، Internet TV و ... استفاده می شود.

هر دو Socket فوق در سمت ماشین سرور ایجاد می شوند. زمانی که یک ماشین سرور بخواهد از طریق یکی از پورتهایش منتظر رسیدن درخواست اتصال یک کلاینت شود (  در اصطلاح در حال Listen کردن است) ابتدا باید یک سوکت از یکی از نوع های فوق ایجاد کند. سپس پورت مورد نظر را به آن متصل ( Bind ) نموده و به حالت انتظار فرو می رود.

 «نکته» اگر شماره پورتی که می خواهیم با serverSocket مورد نظرمان Bind‌ کنیم، توسط سوکت دیگری در حال استفاده باشد، با پیغام خطای زیر مواجه می شویم.

java.net.BindException

======================================

   «6» بررسی روند برقراری ارتباط بین کلاینت و سرور                                                                                                                   فهرست مطالب 

در برنامه های کلاینت/سروری یا اصطلاحا برنامه نویسی تحت Socket‌ در جاوا، روند برقراری ارتباط بین برنامه کلاینت و برنامه سرور بصورت زیر می باشد:

«1» ابتدا برنامه سرور بر روی ماشین خود اجرا شده و پورتی که در برنامه جهت دریافت درخواست های کلاینت تعیین گردیده است، گوش می دهد. همانطور که گفته شد در این مرحله، برنامه سرور باید یک سوکت از نوع serverSocket یا datagramSocket‌ ایجاد نماید.

«2» برنامه کلاینت اجرا شده و با توجه به IP‌ یا HostName‌ سرور و شماره پورتی که سرور به آن گوش می دهد، درخواستی را به سمت سرور و به جهت برقراری ارتباط ارسال می کند.

ارتباط بین کلاینت و سرور

«3» در این مرحله برنامه سرور درخواست کلاینت را از پورت مشخص شده، دریافت می نماید و اگر همه چیز خوب پیش رود و کلاینت مورد تایید سرور قرار بگیرد، برنامه سرور ابتدا یک پورت دیگر را از سمت ماشین سرور به طور خودکار انتخاب کرده و بر اساس آن یک سوکت جدید ایجاد می کند و به برنامه کلاینت اختصاص می دهد.

ارتباط بین کلاینت و سرور

«4» برنامه کلاینت نیز در ماشین کلاینت یک سوکت بر اساس پورتی که از طریق آن با سرور ارتباط برقرار نموده، ایجاد می کند.

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

«نکته»  در زمان ایجاد سوکت در برنامه کلاینت، نیازی نیست که برنامه کلاینت پورتی با شماره یکسان نسبت به شماره پورت برنامه سرور انتخاب کند.

 

 

کلید واژه: 

برنامه نویسی سوکت ، Socket چیست ، کار با سوکت ها در جاوا ، ارتباط کلاینت ( Client ) و سرور ( Server ) از طریق سوکت ( Socket )

  

  • ehsan gholami

Setting up Code::Blocks and MINGW, A Free C and C++ Compiler, on Windows

Step 1: Download Code::Blocks

  • Go to this website: http://www.codeblocks.org/downloads
  • Follow the link to "Download the binary release" (direct link)
  • Go to the Windows 2000 / XP / Vista / 7 section
  • Look for the file that includes mingw in the name. (The name as of this writing was codeblocks-10.05mingw-setup.exe; the 10.05 may be different).
  • Save the file to your desktop. It is roughly 74 megabytes.

Step 2: Install Code::Blocks

  • ehsan gholami