Socketچيست؟
سوكت نقطهاي نهايي براي برقراري يك ارتباط دو طرفه بين دو رايانه است كه در يك شبكه رايانهاي اجرا ميشود. برنامههايي كه در يك شبكه دو طرفه به جابهجايي اطلاعات ميپردازد از يك سوكت استفاده ميكند. براي اينكه دو رايانه با هم ارتباط برقرار كنند نياز به يك آدرس IP دارند كه مشخصكننده هويت يك رايانه در شبكه است. علاوه بر اين به يك پورت كه يك عدد صحيح يكتاست نياز داريم كه مشخص ميكند يك برنامه از چه درگاهي اطلاعات را به دستگاه ديگر منتقل ميكند. اين درگاه مادامي كه يك برنامه در حال انتقال اطلاعات از طريق شبكه است، قابل دسترس توسط برنامههاي ديگر نيست.
برخي از درگاههاي اصلي و پروتكل مورد استفاده آنها به صورت زير است:
HTTP: 80
Telnet: 23
SMTP: 25
SNPP: 444
DNS: 53
FTP(Data): 20
FTP(Control): 21
براي انتقال اطلاعات در يك شبكه دو حالت وجود دارد كهNET. هر دو روش را به صورت كامل پشتيباني ميكند. حالت اول Synchronous و Asynchronous است كه وقتي برنامهاي دادهاي را ارسال ميكند بايد منتظر بماند تا دادهاي از سيستم مقابل پاسخ داده شود. البته برنامه به طور همزمان هيچ كار ديگري نميتواند انجام دهد. اما در حالت دوم برنامه به كار عادي خود ادامه ميدهد و هر وقت به اطلاعات از سيستم ديگر پاسخ داده شد، آنها را پردازش ميكند.تفاوت روشهـــــاي Synchronous و Asynchronous را در مورد چند پردازشي درNET. توضيح دادهايم.دو «فضاي نام» براي اين كار در NET. وجود دارد؛ يكي System.NET و ديگري System.NET.Sockets ، فضاي نام اول براي به دست آوردن مشخصات شبكهاي يك رايانه مثل IP و حتي DNS () به كار ميرود.براي آشنايي بيشتر با اين «فضاي نام» به كد زير دقت كنيد كه آدرس IP يك سايت را با استفاده از DNS آن به شما ميدهد:
IPHostEntry IPHost = Dns.GetHostEntry("www.hotmail.com");
IPAddress[]ipAddress = IPHost.AddressList;
StringBuilder strIpAddress = new StringBuilder();
for (int i = 0; i « ipAddress.Length; i++)
strIpAddress.Append(ipAddress[i].ToString());
Console.WriteLine("The IP Address is: " + strIpAddress.ToString());
ابتدا از طريق Dns.GetHostEntry مشخصات يك ميزبان را به IPHostEntry وارد ميكنيم، سپس از طريق اين شيء و با استفاده از ويژگي AddressList آن ميتوان به تمامي آدرسهاي IP موجود دسترسي پيدا كنيم.قبل از اينكه سراغ برنامهنويسي يك برنامه Client و Server برويم، ابتدا دوتا از پروتكلهاي مهم شبكه را مورد بررسي قرار ميدهيم.اگر مطالعاتي در مورد شبكه داشته باشيد حتي با دو پروتكل TCP و UDP آشنا هستيد. اينجا مروري در مورد اين دو خواهيم داشت.پروتكل TCP انتقال اطلاعات از طريق يك قانون ارتباط گرا (Connection Orient) است. اين به معناي آن است كه وقتي يك بسته اطلاعاتي ارسال ميشود، سيستم ارسال كننده بايد منتظر پاسخ باشد. اگر ارتباط قطع شود و بسته ارسال شده باشد، سيستم عدم ارسال بسته را اعلام ميدهد. هر چند بسته اطلاعاتي در سيستم مقصد دريافت شده باشد، اما سيستم ارسالكننده به سبب اينكه پاسخي مبني بر دريافت بسته نداشته، بسته را در برقراري دوباره اتصال ارسال ميكند. اين كار باعث كندي كارها ميشود و كاربرد آن زماني است كه اهميت ارسال اطلاعات مهم باشد.در پروتكل UDP، انتقال اطلاعات بدون دريافت پاسخ انجام ميشود و اطلاعات مشخصا در شبكه انتقال پيدا ميكند و اينكه سيستم طرف پاسخ دهد كه اطلاعات را دريافت كرده يا خير، اصلا مهم نيست. از اين پروتكل براي Streaming و انتقال صوت و تصوير در شبكه استفاده ميشود.
.: Weblog Themes By Pichak :.