Download presentation
Presentation is loading. Please wait.
Published byAri-Matti Palo Modified over 6 years ago
1
مهندسی فناوری اطلاعات ارائه دهنده دکتر سيد امين حسيني
E.mail: Home page:
2
فصل هفتم: برنامهنويسي تحت شبكه اينترنت Socket Programming
فصل هفتم: برنامهنويسي تحت شبكه اينترنت Socket Programming انواع سوكت و مفاهيم آنها مفهوم سرويسهنده /مشتري توابع مورد استفاده در برنامه سرويسدهنده توابع مورد استفاده در برنامه مشتري معرفي زبان جاوا آشنايي با اپلت هدفهاي آموزشي :
3
روال برقراري ارتباط بين دو برنامه از راه دور:
الف) درخواست برقراري ارتباط با كامپيوتري خاص با IP مشخص و برنامهاي روي آن كامپيوتر با آدرس پورت مشخص = درخواست فراخواني تابع سيستمي socket() ب) مبادله دادهها با توابع send() و recv() در صورت برقراري ارتباط ج) اتمام ارتباط با فراخواني تابع close()
4
انواع سوكت و مفاهيم آنها
سوكتهاي نوع استريم = سوكتهاي اتصال گرا Connection Oriented سوكتهاي نوع ديتاگرام = سوكتهاي بدون اتصال Connectionless سوكتهاي نوع استريم مبتني بر پروتكل TCP لزوم برقراري يك اتصال قبل از مبادله دادهها به روش دستتكاني سهمرحلهاي سوكتهاي نوع ديتاگرام مبتني بر پروتكل UDP مبادله داده بدون نياز به برقراري هيچ ارتباط و يا اتصالي و عدم تضميني بررسيدن دادهها، صحت دادهها و ترتيب دادهها
5
انتقال صدا و و تصوير يا سيستم DNS
سوكتهاي نوع استريم كاربرد: پروتكل انتقال فايل FTP پروتكل انتقال صفحات ابرمتن HTTP پروتكل انتقال نامه هاي الكترونيكي SMTP سوكتهاي نوع ديتاگرام كاربرد: انتقال صدا و و تصوير يا سيستم DNS
6
سوكت socket سوكت يك مفهوم انتزاعي از تعريف ارتباط در سطح برنامهنويسي
اعلام آمادگي جهت مبادله دادهها نوسط برنامهنويس به سيستم عامل بدون درگير شدن با جزئيات پروتكل TCP يا UDP و تقاضاي ايجاد فضا و منابع مورد نياز جهت برقراري يك ارتباط از سيستمعامل
7
سرويس دهنده / مشتري تعريف عمومي:
) : پروسه ايست نيازمند اطلاعاتclient)مشتري :(serverسرويس دهنده ( پروسه اي است براي به اشتراك گذاشتن اطلاعات و تحويل اطلاعات به مشتري
8
برنامه سمت سرويس دهنده Server Side
برنامهاي است كه روي ماشين سرويسدهنده نصب ميشود و منتظر است تا تقاضائي مبني بر برقراري يك ارتباط دريافت كرده و پس از پردازش آن تقاضا ، پاسخ مناسب را ارسال نمايد بنابراين در حالت كلي برنامه سرويس دهنده شروع كننده يك ارتباط نيست.
9
Request For Information
برنامه هاي سمت مشتري Client Side برنامه هاي سمت مشتري بنابر نياز، اقدام به درخواست اطلاعات مينمايند. تعداد مشتريها روي ماشينهاي متفاوت يا حتي روي يك ماشين ميتواند متعدد باشد و ليكن معمولاً تعداد سرويس دهنده ها يكي است .(مگر در سيستمهاي توزيعشده) Client Server Request For Information Returned Information ارتباط بين سرويس دهنده و مشتري
10
الگوريتم كار برنامه سمت سرويسدهنده
الگوريتم كار برنامه سمت سرويسدهنده الف) Socket(): ااعلام درخواست ارتباط و تعيين نوع آن (TCPيا (UDP از سيستمعامل با اين تابع سيستمي ب) Bind(): نسبت دادن يك آدرس پورت سوكتي كه باز كرده ايم :Listen()ج) اعلام شروع پذيرش تقاضاهاي ارتباط TCP با اين تابع به سيستم عامل و تعين حداكثر تعداد پذيرش ارتباط TCP د) :Accept() تقاضاي معرفي يكي از ارتباطات معلق با استفاده از اين تابع از سيستم عامل ه) :Send(),recv() مبادله داده و) :Close() قطع ارتباط دو طرفه ارسال و دريافت ز) :Shutdown() قطع يك طرفه يكي از عمليات ارسال يا دريافت
11
الگوريتم كار برنامه سمت مشتري
ايجاد يك سوكت (مشخصه يك ارتباط ) :Socket()الف) تقاضاي برقراري ارتباط با سرويسدهنده :Connect()ب) ارسال و دريافت داده ها:Send(),recv()ج) قطع ارتباط بصورت دو طرفه .:Close()د) :Shutdown() قطع ارتباط بصورت يك طرفه.
12
Close(),shutdown() توابع
توابع مورد استفاده در برنامه سمت سرويسدهنده (مبتني بر (TCP socketتابع () Bind() تابع Accept() تابع Listen() تابع Send(),recv() توابع Close(),shutdown() توابع
13
Close(),shutdown() توابع
(TCPتوابع مورد استفاده در برنامه مشتري (مبتني بر پروتكل Connect()تابع socketتابع () Send(),recv() توابع Close(),shutdown() توابع
14
<?php ignore_user_abort(true); set_time_limit(0); $host = " "; $port = 9898; $socket = socket_create(AF_INET, SOCK_STREAM, 0) or die("Could not create socket\n"); socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1); socket_bind($socket, $host, $port); socket_listen($socket);
15
while(true){ $spawn = socket_accept($socket); $data = socket_read($spawn, 10240) or die("Could not read input\n"); $load = file_get_contents('test.txt'); file_put_contents('test.txt',$load.$data); } socket_close($socket); ?>
16
<?php set_time_limit(0); $host = " "; $port = 9898; $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP) or die("Could not create socket\n"); $connect = socket_connect($socket, $host, $port); $sendmsg = " this is a test "; socket_write($socket, $sendmsg,strlen($sendmsg)); socket_close($socket); print file_get_contents('test.txt'); ?>
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.