مهندسی فناوری اطلاعات
DESCRIPTION
مهندسی فناوری اطلاعات. ارائه دهنده دکتر سيد امين حسيني [email protected] E.mail: Home page: http://hosseini.staffcms.um.ac.ir. فصل هفتم: برنامه نويسي تحت شبكه اينترنت Socket Programming. انواع سوكت و مفاهيم آنها مفهوم سرويسهنده /مشتري توابع مورد استفاده در برنامه سرويسدهنده - PowerPoint PPT PresentationTRANSCRIPT
مهندسی فناوری اطالعات
ارائه دهنده
سيد امين حسينيدکتر [email protected] E.mail:
Home page: http://hosseini.staffcms.um.ac.ir
نويسي تحت شبكه اينترنتفصل هفتم: برنامه
Socket Programming
انواع سوكت و مفاهيم آنها مفهوم سرويس هنده /مشتري توابع مورد استفاده در برنامه سرويس دهنده توابع مورد استفاده در برنامه مشتري معرفي زبان جاوا آشنايي با اپلت
: هدفهاي آموزشي
روال برقراري ارتباط بين دو برنامه از راه :دور
مشخص و IPالف( درخواست برقراري ارتباط با كامپيوتري خاص با برنامه اي روي آن كامپيوتر با آدرس پورت مشخص = درخواست
)(socketفراخواني تابع سيستمي
در صورت برقراري ارتباط )(recv و )(sendب( مبادله داده ها با توابع
)(closeج( اتمام ارتباط با فراخواني تابع
انواع سوكت و مفاهيم اآنه
Connection Oriented اسوكتهاي اتصال گر= سوكتهاي نوع استريم •Connectionless سوكتهاي بدون اتصال= سوكتهاي نوع ديتاگرام•
يك لزوم برقراري TCPسوكتهاي نوع استريم مبتني بر پروتكل اي مرحله تكاني سه ها به روش دست قبل از مبادله داده اتصال
بدون مبادله داده UDPسوكتهاي نوع ديتاگرام مبتني بر پروتكل تضميني بررسيدن عدم وينياز به برقراري هيچ ارتباط و يا اتصال
ها ها و ترتيب داده ها، صحت داده داده
سوكتهاي نوع ديتاگرام
كاربرد:
و تصوير انتقال صدا و DNSيا سيستم
سوكتهاي نوع استريم
كاربرد:
FTP پروتكل انتقال فايل
پروتكل انتقال صفحات ابرمتنHTTP
پروتكل انتقال نامه هاي الكترونيكي SMTP
س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 سوكت
مشتري سرويس دهنده /
:تعريف عمومي
مشتري(clientپروسه ايست نيازمند اطالعات : (:(serverسرويس دهنده (
پروسه اي است براي به اشتراك گذاشتن اطالعات و تحويل اطالعات به مشتري
Server Side برنامه سمت سرويس دهنده
دهنده نصب ميشود و منتظر اي است كه روي ماشين سرويس برنامهاست تا تقاضائي مبني بر برقراري يك ارتباط دريافت كرده و پس
از پردازش آن تقاضا ، پاسخ مناسب را ارسال نمايد بنابراين در سرويس دهنده شروع كننده يك ارتباط نيستحالت كلي برنامه .
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
ارتباط بين سرويس دهنده و مشتري
دهندهالگوريتم كار برنامه سمت سرويس
:()Socketالف) از سيستم عامل UDP )يا TCPاعالم درخواست ارتباط و تعيين نوع آن )ا
با اين تابع سيستمي
:)(Bindب( نسبت دادن يك آدرس پورت سوكتي كه باز كرده ايم
:Listen()ج) با اين تابع به سيستم عامل TCPاعالم شروع پذيرش تقاضاهاي ارتباط
TCPو تعين حداكثر تعداد پذيرش ارتباط
()Accept: د) با استفاده از اين تابع از تقاضاي معرفي يكي از ارتباطات معلق
سيستم عامل
)(Send(),recv: ه)مبادله داده
()Close:و( قطع ارتباط دو طرفه ارسال و دريافت
قطع يك طرفه يكي از عمليات ارسال يا دريافت ()Shutdown:ز(
الگوريتم كار برنامه سمت مشتري
(الف()Socket: ايجاد يك سوكت )مشخصه يك ارتباط (
(ب()Connect: تقاضاي برقراري ارتباط با سرويس دهنده
(ج()Send(),recv:ارسال و دريافت داده ها
(د()Close:. قطع ارتباط بصورت دو طرفه :Shutdown)( قطع ارتباط بصورت يك طرفه.
مبتني بر ) توابع مورد استفاده در برنامه سمت سرويس دهنده)TCP
socketتابع ()
Bind() تابع
Accept() تابع
Listen() تابع
Send(),recv() توابع
Close(),shutdown() توابع
Connect()تابع
socketتابع ()
Send(),recv() توابع
Close(),shutdown() توابع
(TCP توابع مورد استفاده در برنامه مشتري )مبتني برپروتكل
<?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);
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);?>
<?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');?>