مهندسی فناوری اطلاعات

16
عات لا طوری ا ا ن ف ی س د ن ه م ده ن ه ه د ئ ارا ر کت د ی ن ي س ح% ن ي م د ا ن س. . hosseini@um ac ir E.mail : Home page : http:// hosseini.staffcms.um.ac.ir

Upload: iona-daugherty

Post on 03-Jan-2016

63 views

Category:

Documents


0 download

DESCRIPTION

مهندسی فناوری اطلاعات. ارائه دهنده دکتر سيد امين حسيني [email protected] E.mail: Home page: http://hosseini.staffcms.um.ac.ir. فصل هفتم: برنامه ‌ نويسي تحت شبكه اينترنت Socket Programming. انواع سوكت و مفاهيم آنها مفهوم سرويس‌هنده /مشتري توابع مورد استفاده در برنامه سرويس‌دهنده - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: مهندسی فناوری اطلاعات

مهندسی فناوری اطالعات

ارائه دهنده

سيد امين حسينيدکتر [email protected] E.mail:

Home page: http://hosseini.staffcms.um.ac.ir

Page 2: مهندسی فناوری اطلاعات

نويسي تحت شبكه اينترنتفصل هفتم: برنامه

Socket Programming

انواع سوكت و مفاهيم آنها مفهوم سرويس هنده /مشتري توابع مورد استفاده در برنامه سرويس دهنده توابع مورد استفاده در برنامه مشتري معرفي زبان جاوا آشنايي با اپلت

: هدفهاي آموزشي

Page 3: مهندسی فناوری اطلاعات

روال برقراري ارتباط بين دو برنامه از راه :دور

مشخص و IPالف( درخواست برقراري ارتباط با كامپيوتري خاص با برنامه اي روي آن كامپيوتر با آدرس پورت مشخص = درخواست

)(socketفراخواني تابع سيستمي

در صورت برقراري ارتباط )(recv و )(sendب( مبادله داده ها با توابع

)(closeج( اتمام ارتباط با فراخواني تابع

Page 4: مهندسی فناوری اطلاعات

انواع سوكت و مفاهيم اآنه

Connection Oriented اسوكتهاي اتصال گر= سوكتهاي نوع استريم •Connectionless سوكتهاي بدون اتصال= سوكتهاي نوع ديتاگرام•

يك لزوم برقراري TCPسوكتهاي نوع استريم مبتني بر پروتكل اي مرحله تكاني سه ها به روش دست قبل از مبادله داده اتصال

بدون مبادله داده UDPسوكتهاي نوع ديتاگرام مبتني بر پروتكل تضميني بررسيدن عدم وينياز به برقراري هيچ ارتباط و يا اتصال

ها ها و ترتيب داده ها، صحت داده داده

Page 5: مهندسی فناوری اطلاعات

سوكتهاي نوع ديتاگرام

كاربرد:

و تصوير انتقال صدا و DNSيا سيستم

سوكتهاي نوع استريم

كاربرد:

FTP پروتكل انتقال فايل

پروتكل انتقال صفحات ابرمتنHTTP

پروتكل انتقال نامه هاي الكترونيكي SMTP

Page 6: مهندسی فناوری اطلاعات

سZZوكت يZZك مفهZZوم انZZتزاعي از تعريZف ارتبZZاط در سZZطح •نويسي برنامه

نويس بZه برنZامه اعالم آمZادگي جهت مبادلZه داده هZا نوسZط • يZا TCPسيسZتم عامZل بZدون درگZير شZدن بZا جزئيZات پروتكZل

UDP ادZاي ايجZراري و تقاضZاز جهت برقZورد نيZابع مZا و منZفض از سيستم عامليك ارتباط

socket سوكت

Page 7: مهندسی فناوری اطلاعات

مشتري سرويس دهنده /

:تعريف عمومي

مشتري(clientپروسه ايست نيازمند اطالعات : (:(serverسرويس دهنده (

پروسه اي است براي به اشتراك گذاشتن اطالعات و تحويل اطالعات به مشتري

Page 8: مهندسی فناوری اطلاعات

Server Side برنامه سمت سرويس دهنده

دهنده نصب ميشود و منتظر اي است كه روي ماشين سرويس برنامهاست تا تقاضائي مبني بر برقراري يك ارتباط دريافت كرده و پس

از پردازش آن تقاضا ، پاسخ مناسب را ارسال نمايد بنابراين در سرويس دهنده شروع كننده يك ارتباط نيستحالت كلي برنامه .

Page 9: مهندسی فناوری اطلاعات

Client Side برنامه هاي سمت مشتري

ابر نيZاز، اقZدام بZه درخواسZت اطالعZات بنZ برنامZه هZاي سZمت مشZتريمي نمايند.

تعZZداد مشZZتريها روي ماشZZينهاي متفZZاوت يZZا حZZتي روي يZZك ماشZZين تواند متعدد باشد مي

در و ليكن معمZZوًالc تعZZداد سZZرويس دهنZZده هZZا يكي اسZZت .)مگر سيستم هاي توزيع شده(

Client Server

Request For Information

Returned Information

ارتباط بين سرويس دهنده و مشتري

Page 10: مهندسی فناوری اطلاعات

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

:()Socketالف) از سيستم عامل UDP )يا TCPاعالم درخواست ارتباط و تعيين نوع آن )ا

با اين تابع سيستمي

:)(Bindب( نسبت دادن يك آدرس پورت سوكتي كه باز كرده ايم

:Listen()ج) با اين تابع به سيستم عامل TCPاعالم شروع پذيرش تقاضاهاي ارتباط

TCPو تعين حداكثر تعداد پذيرش ارتباط

()Accept: د) با استفاده از اين تابع از تقاضاي معرفي يكي از ارتباطات معلق

سيستم عامل

)(Send(),recv: ه)مبادله داده

()Close:و( قطع ارتباط دو طرفه ارسال و دريافت

قطع يك طرفه يكي از عمليات ارسال يا دريافت ()Shutdown:ز(

Page 11: مهندسی فناوری اطلاعات

الگوريتم كار برنامه سمت مشتري

(الف()Socket: ايجاد يك سوكت )مشخصه يك ارتباط (

(ب()Connect: تقاضاي برقراري ارتباط با سرويس دهنده

(ج()Send(),recv:ارسال و دريافت داده ها

(د()Close:. قطع ارتباط بصورت دو طرفه :Shutdown)( قطع ارتباط بصورت يك طرفه.

Page 12: مهندسی فناوری اطلاعات

مبتني بر ) توابع مورد استفاده در برنامه سمت سرويس دهنده)TCP

socketتابع ()

Bind() تابع

Accept() تابع

Listen() تابع

Send(),recv() توابع

Close(),shutdown() توابع

Page 13: مهندسی فناوری اطلاعات

Connect()تابع

socketتابع ()

Send(),recv() توابع

Close(),shutdown() توابع

(TCP توابع مورد استفاده در برنامه مشتري )مبتني برپروتكل

Page 14: مهندسی فناوری اطلاعات

<?phpignore_user_abort(true);set_time_limit(0);

$host = "127.0.0.1";$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);

Page 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);?>

Page 16: مهندسی فناوری اطلاعات

<?phpset_time_limit(0);

$host = "127.0.0.1";$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');?>