acoustic

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

دوشنبه, 08/29/2011 - 08:11 -- admin

socket چيست؟

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

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

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

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

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

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

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

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

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

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

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

java.net.BindException

Subscribe to RSS - acoustic

آدرس دفتر فروش

تهران نازی آباد خیابان فاطمی خیابان کارگر سامانی پ۱۶۲

تلفن :۵۵۵۳۰۷۶۱-۰۲۱ و ۰۹۱۹۸۹۱۴۸۳۵  

Email : jalalimehdi@gmail.com

Website : www.softwareco.ir

خبرنامه

اطلاع از آخرین اخبار سایت دلفین