دوست عزیز، به سایت علمی نخبگان جوان خوش آمدید

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

توجه داشته باشید، در صورتی که عضو سایت نباشید نمی توانید از تمامی امکانات و خدمات سایت استفاده کنید.
نمایش نتایج: از شماره 1 تا 3 , از مجموع 3

موضوع: Socket Programming

  1. #1
    یار همراه
    رشته تحصیلی
    مهندسی کامپیوتر - نرم افزار
    نوشته ها
    2,968
    ارسال تشکر
    5,023
    دریافت تشکر: 4,729
    قدرت امتیاز دهی
    3407
    Array
    Bad Sector's: جدید102

    Arrow Socket Programming

    شبکه، بسته و پروتکل
    یک شبکه کامپیوتری شامل ماشین هایی است که از طریق کانالهای مخابراتی (Communication Channel) به هم متصل شده اند. این ماشین ها را میزبان (Host) و مسیریاب (Router) می نامیم. هر میزبان کامپیوتری است که برنامه ای مانند مرورگر وب را اجرا می کند. مسیر یاب ماشینی است که کارش رله کردن (Relay) و یا هدایت (Forward) اطلاعات از یک کانال ارتباطی به کانال ارتباطی دیگر است. کانال ارتباطی (Communication Channel) ابزاری برای حمل دنباله ای از بایت ها از میزبانی به میزبان دیگر است.
    اهمیت مسیریاب ها به این دلیل است که نمی توان مستقیماً از میزبانی به میزبان دیگر متصل شد. بلکه، میزبان هایی به یک مسیریاب متصل می شوند که این مسیریاب نیز به مسیریاب های دیگری متصل است. این چیدمان (Arrangement) باعث می شود که با تعداد اندکی از کانالهای مخابراتی، از ماشینی به ماشین دیگر رسید. برنامه هایی که اطلاعاتی را در شبکه مبادله می کنند، مستقیماً با مسیریاب ها ارتباط برقرار نمی کنند و از وجود آنها آگاهی ندارند.
    منظور از اطلاعات در اینجا، دنباله ای از بایت ها است که توسط برنامه ساخته و تفسیر می شوند. در زمینه شبکه های کامپیوتری، این دنباله از بایت ها را بسته (Packet) می گویند. بسته حاوی داده های کاربر و اطلاعات کنترلی است که شبکه با استفاده از آن کارش را انجام می دهد. نمونه ای از اطلاعات کنترلی، مقصد بسته است. مسیریاب ها با استفاده از این اطلاعات کنترلی می فهمند که چگونه باید بسته ها را هدایت کنند.
    پروتکل (Protocol)، توافقی درباره نحوه مبادله اطلاعات و معنای آنها توسط برنامه های مخابره کننده است. پروتکل مشخص می کند بسته ها چگونه سازماندهی شده اند (ساختار بسته ها چگونه است). به عنوان مثال اطلاعات مقصد در کجا ی بسته قرار دارند و اندازه آن چقدر است. علاوه بر این مشخص می کند که اطلاعات چگونه باید تفسیر شوند.
    پیاده سازی شبکه مفید، مستلزم این است که دنباله وسیعی از مسئله های مختلف حل شوند. پروتکل های مختلفی برای حل مسئله های مختلف ایجاد شده اند. TCP/IP یک مجموعه از چنین راه حل ها است که گاهی مجموعه پروتکل (Protocol Suite) نامیده می شود. مجموعه پروتکل، علاوه بر اینترنت، در شبکه های خصوصی نیز قابل استفاده است. بنابراین وقتی حرف از شبکه می زنیم، شبکه ای را در نظر داریم که از خانواده پروتکل TCP/IP استفاده می کند. پروتکل های اصلی در خانواده TCP/IP، پروتکل اینترنت (IP)، پروتکل کنترل انتقال (TCP) و پروتکل داده گرام (Datagram) کاربر (UDP) هستند.
    TCP = Transmission Control Protocol
    UDP = User Datagram Protocol
    خانواده پروتکل TCP/IP و سایر پروتکل ها به صورت لایه ای سازماندهی شده اند. شکل زیر رابطه بین پروتکل ها، نرم افزارها، و API سوکت ها را در میزبان ها و مسیر یاب ها نشان می دهد. نرم افزار ها از طریق API سوکت ها به سرویس های ارائه شده توسط UDP و TCP دسترسی دارند.
    همانطور که در شکل بالا مشاهده می شود، پروتکل اینترنت (IP)، مسئله فراهم کردن دنباله ای از کانال ها و مسیر یاب های بین دو میزبان را حل می کند. پروتکل اینترنت (IP) یک سرویس داده گرام را تهیه می کند. هر بسته توسط شبکه به طور مستقل اداره و تحویل می شود. مثل تلگراف یا نامه هایی که توسط پست ارسال می شوند. برای این کار، هر بسته IP باید حاوی آدرس مقصدش باشد. به عنوان مثال، برای ارسال نامه ای به شخص خاص، باید آدرس وی را پشت پاکت بنویسید. IP یک پروتکل بهترین تلاش است، یعنی سعی می کند هر بسته را تحویل دهد، اما می تواند بسته ها را مفقود کند، ترتیب آنها را عوض کند، یا بسته را تکثیر نماید.
    لایه بالای IP، لایه انتقال نام دارد که دو پروتکل مهم به نام های TCP و UDP در آن وجود دارد. TCP و UDP یک وظیفه مشترک دارند، و آن آدرس دهی است. به یاد داشته باشید که IP بسته ها را به میزبان تحویل می دهد. به آدرس دهی خاصی نیاز است تا بسته ای به کاربردی برسد. UDP و TCP از آدرس هایی به نام شماره های پورت استفاده می کنند به طوری که نرم افزار های موجود در داخل میزبان ها می توانند شناسایی شوند. این دو پروتکل را پروتکل های انتها به انتها می نامند، زیرا داده ها را از برنامه ای به برنامه دیگر حمل می کنند.
    TCP طراحی شد تا مفقود شدن و تکثیر بسته ها و سایر خطا هایی را که در کانال تهیه شده توسط IP رخ می دهند، تشخیص دهد و ترمیم کند.TCP یک کانال جریان بایت (Byte Stream) مطمئن (قابل اعتماد) را تدارک می بیند، به طوری که برنامه ها با این مشکلات سروکار نداشته باشند. TCP یک پروتکل اتصال گرا (Connection Oriented) است، یعنی قبل از شروع مخابره، دو برنامه باید با یکدیگر اتصال TCP برقرار کنند که شامل مبادله پیام دست تکانی (Hand Shake) بین پیاده سازی های TCP بین دو کامپیوتری است که با هم ارتباط برقرار می کنند. استفاده از TCP مثل ورودی-خروجی فایل است. در واقع، فایلی که توسط برنامه ای نوشته می شود و توسط دیگری خوانده می شود، یک حالت معقول از مخابره روی اتصال TCP است. از طرف دیگر UDP در یافتن خطا های ناشی از IP تلاش نمی کند. لذا برنامه هایی که از UDP استفاده می کنند، باید آمادگی برطرف کردن خطاهایی مثل مفقود شدن یا تکثیر بسته ها را داشته باشند.
    برای داشتن چیزی که تا به حال نداشته اید
    باید کسی باشید که تا به حال نبوده اید

  2. #2
    یار همراه
    رشته تحصیلی
    مهندسی کامپیوتر - نرم افزار
    نوشته ها
    2,968
    ارسال تشکر
    5,023
    دریافت تشکر: 4,729
    قدرت امتیاز دهی
    3407
    Array
    Bad Sector's: جدید102

    پیش فرض Socket Programming - قسمت دوم

    سرویس گیرنده و سرویس دهنده
    در مقایسه با سرویس پستی و سیستم تلفن داخلی، هر مخابره با یک عامل (طرف) شروع می شود که نامه ای را ارسال می کند یا شماره تلفن را برا برقراری تماس می گیرد، در حالی که عامل دیگر از طریق نامه یا گرفتن گوشی تلفن پاسخ می دهد. مخابره اینترنتی نیز همین طور است. واژه های سرویس گیرنده (Client) و سرویس دهنده (Server) به این نقش ها اشاره می کنند. برنامه سرویس گیرنده مخابره را آغاز می کند، در حالی که برنامه سرویس دهنده منتظر آن است و به آن مخابره پاسخ می دهد. این که برنامه به عنوان سرویس دهنده عمل کند یا سرویس گیرنده، شکل کلی استفاده از API سوکت را برای برقراری ارتباط با همتایش مشخص می کند. علاوه بر این تمایز بین سرویس گیرنده و سرویس دهنده نیز مهم است، زیرا در آغاز، سرویس گیرنده باید آدرس و پورت سرویس دهنده را بداند، ولی عکس آن درست نیست. این کار شبیه تماس تلفنی است. لازم نیست مخاطب تماس تلفنی، شماره تلفن تماس گیرنده را بداند. همانند تماس تلفنی، وقتی تماس برقرار شد، تمایزی بین سرویس دهنده و سرویس گیرنده وجود ندارد.
    سرویس گیرنده لازم است که شماره سرویس دهنده را بداند تا از طریق آن بتواند با سرویس دهنده ارتباط برقرار کند. سرویس دهنده ها می توانند از هر پورتی استفاده کنند، اما سرویس گیرنده باید آن پورت ها را بداند. در اینترنت قانونی برای انتساب شماره پورت به کاربرد های خاص وجود دارد که "مدیریت انتساب شماره اینترنت"، IANA (Internet Assigned Numbers Authority) این کار را انجام می دهد. به عنوان مثال، پورت 21 به پروتکل انتقال فایل (FTP) نسبت داده شده است. برای مشاهده جزئیات بیشتر راجع به شماره پورت های ثبت شده توسط IANA می توانید به پایگاه اینترنتی www.iana.org مراجعه نمایید.
    برای داشتن چیزی که تا به حال نداشته اید
    باید کسی باشید که تا به حال نبوده اید

  3. #3
    یار همراه
    رشته تحصیلی
    مهندسی کامپیوتر - نرم افزار
    نوشته ها
    2,968
    ارسال تشکر
    5,023
    دریافت تشکر: 4,729
    قدرت امتیاز دهی
    3407
    Array
    Bad Sector's: جدید102

    پیش فرض Socket Programming - قسمت چهارم

    سوکت چیست؟
    سوکت انتزاعی است که یک برنامه کاربردی از طریق آن می تواند داده ها را ارسال و دریافت کند، همانند یک فایل باز که برنامه می تواند داده ها را در آن ذخیره و از آن بازیابی کند. سوکت موجب می شود که برنامه کاربردی به شبکه متصل شود و با برنامه های کاربردی دیگری که با آن شبکه متصل اند مخابره کند. اطلاعاتی که توسط برنامه کاربردی در یک ماشین در سوکت نوشته می شود، توسط برنامه دیگری در ماشین دیگر قابل خواندن است.
    برنامه های کاربردی پیام ها را از طریق Socket به شبکه ارسال و از آن دریافت می کنند. یک مثال؛ برنامه کاربردی همانند یک خانه و سوکت مثل درب آن است. وقتی برنامه ای می خواهد پیامی را به برنامه دیگر در میزبان دیگری ارسال کند، آن پیام را از درب خودش به شبکه می فرستد. پیام ارسالی توسط یک زیر ساخت شبکه به درب میزبان مقصد می رسد. وقتی پیام به میزبان مقصد می رسد، پیام از درب دریافتی برنامه (سوکت) عبور میکند و سپس برنامه گیرنده روی پیام کار می کند.
    همانطور که در شکل زیر نشان داده شده است، سوکت، واسطی بین لایه Application و لایه Transport در یک میزبان است. علاوه بر این، واسط برنامه نویسی است که نرم افزار های شبکه با آن در اینترنت ساخته می شوند. تولید کننده برنامه کاربردی بر روی هر چیزی در سمت لایه کاربردی سوکت کنترل دارد، ولی بر سمت لایه انتقال سوکت کنترل اندکی دارد. تنها کنترلی که تولید کننده برنامه کاربردی روی سمت لایه انتقال دارد، عبارت است از: 1- انتخاب پروتکل انتقال، و 2- توانایی اصلاح چند پارامتر لایه انتقال مثل حد اکثر اندازه میانگیر (Buffer) یا قطعه. وقتی تولید کننده برنامه کاربردی، پروتکل انتقال را انتخاب می کند، برنامه کاربردی با استفاده از سرویس های لایه انتقال فراهم شده توسط آن پروتکل ساخته می شود.
    سوکت های مجموعه پروتکل TCP/IP به دو دسته تقسیم می شوند:
    1- سوکت های استریم - Stream Sockets
    2- سوکت های داده گرام - Datagram Sockets
    سوکت های استریم از پروتکل انتها به انتهای TCP استفاده می کنند و یک سرویس استریم بایتی مطمئن را تهیه می نمایند. سوکت های داده گرام از UDP استفاده می کنند که یک پروتکل انتها به انتها است. برنامه ها با استفاده از UDP می توانند پیام هایی به طول 65500 بایت را ارسال کنند. سوکت TCP/IP با آدرس اینترنت یکتا، یک پروتکل انتها به انتها (TCP یا UDP) و شماره پورت مشخص می گردد.
    شکل زیر یک رابطه منطقی را بین برنامه ها، سوکت ها، پروتکل ها و شماره پورت ها در یک میزبان نشان می دهد. توجه کنید که یک سوکت می تواند توسط چند برنامه کاربردی مراجعه شود. هر برنامه ای که به سوکت خاصی مراجعه دارد، می تواند از طریق آن سوکت مخابره کند. همانطور که پیش از این بیان شد، پورت برنامه ای را در میزبان مشخص می کند. در واقع، پورت، سوکتی را در میزبان مشخص می کند.





    نويسنده :
    سیامک محمدی نژاد، دانشجوی مقطع کارشناسی رشته کامپیوتر جهاد دانشگاهی واحد اصفهان
    ویرایش توسط Bad Sector : 6th February 2011 در ساعت 02:49 AM
    برای داشتن چیزی که تا به حال نداشته اید
    باید کسی باشید که تا به حال نبوده اید

  4. 2 کاربر از پست مفید Bad Sector سپاس کرده اند .


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. مقاله: کامپیوترهای مبنای سه
    توسط moji5 در انجمن بخش مقالات نرم افزار
    پاسخ ها: 0
    آخرين نوشته: 8th August 2010, 11:47 AM
  2. کتاب: دانلود کتاب برنامه نویسی بازی پی اچ پی PHP Game Programming
    توسط آبجی در انجمن معرفی کتب و مجلات کامپیوتر
    پاسخ ها: 0
    آخرين نوشته: 19th July 2010, 05:27 PM
  3. کتاب: دانلود کتاب Microsoft Access VBA Programming
    توسط آبجی در انجمن معرفی کتب و مجلات کامپیوتر
    پاسخ ها: 0
    آخرين نوشته: 19th July 2010, 05:12 PM
  4. پاسخ ها: 0
    آخرين نوشته: 16th July 2010, 04:08 PM
  5. (Object Oriented Programming Languages (OOPLs
    توسط ElaBel در انجمن برنامه نویسی تحت سیستم عامل
    پاسخ ها: 0
    آخرين نوشته: 5th June 2010, 01:07 AM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •