بسمه تعالی
با عرض سلام خدمت همه دوستان عزیز
هدف بنده از نوشتن این مقاله شروع بحثی درباره برنامه نویسی شبکه توسط Indy در محیط دلفی است.امیدوارم دوستان باتجربه تر در مفید تر شدن این نوشته همکاری کنند .
بدون حاشیه مستقیم سراغ اصل مطلب میروم ...
Indy TCP/IP server Component
شاید فکر کنید که از قسمت سخت Indy Component شروع میکنیم ، در واقع درست فکر میکنید چون وقتی ساختن یک client را (در مقالات بعدی ) ببنید متوجه میشوید که ساخت یک client چقدر ساده است .
برای شروع ، یک پروژه جدید ( New Project ) ایجاد کرده ویک IdTcpServer component در آن قرار دهید .( این کامپوننت در برگه Indy Server قرار دارد و اولین کامپوننت است)
تنظیمات زیر را روی آن اعمال نمایید :
Property Name : Property Value
Active : True
DefaultPort : 1001
Greeting Text : hello
خوب ... Tcp server شما آماده کار است! بدون اینکه حتی یک خط هم کد نوشته باشید . اگر برنامه خود را اجرا کنید فقط یک صفحه خالی نشان میدهد. برنامه را در حالت Run نگه دارید. برای تست سرور از telnet استفاده میکنیم ( خیلی ساده است ...! اگر مقاله را دنبال کنید)
کافیست در Command Prompt تایپ کنید :
c:\> telnet 127.0.0.1 1001
که عدد 127.0.0.1 ip محلی شماست و 1001 هم شماره پورتی است که قبلا ست کرده اید.
بعد از زدن کلید Enter پیغام hello از طرف سرور برای شما ارسال میشود .(پس ارتباط شما با سرور از پورت 1001 به درستی برقرار شده است .)
در ضمن فراموش نکنید که برنامه ای که برای سرور نوشته اید حتما باید run شده باشد ( یا بهتر بگویم باید در حال اجرا باشد .)
پیغام hello که برای شما ارسال شده است در واقع همانGreeting Text property است که شما ست کرده اید پس هر پیغام دیگری میتواند باشد .
حالا میخواهم برنامه سروررا کمی توسعه دهم. میخواهیم سرور در برابر دستورات ما عکس-العمل نشان دهد .مثلا با تایپ دستور " Responde "، سرور پاسخ دهد که :
" Ok ! I have Responded "
این در واقع اولین اجرای دستورات است .
برای این کار ابتدا مقدار CommandHandlersEnabled را برابر True قرار دهید . سپس روی CommandHandlers property دوبار کلیک کنید و در پنجره ای که باز میشود روی AddNew کلیک کنید . روی Item ای که اضافه میشود کلیک کرده و تنظیمات زیر را روی Property های آن اعمال کنید :
Command : Responde
ReplyNormalText : ok! I have Responded
برنامه را کامپایل و اجرا کنید ... سپس مجدد telnet را مانند قبل اجرا کنید و بعد از دریافت پیغام اولیه ، Respode را تایپ کرده و Enter را بزنید .خواهید دید که پیغام مورد نظر بعنوان پاسخ برگردانده میشود .
در مقاله بعدی ابتدا کمی بیشتر در نحوه ایجاد ارتباط توسط سرور دقیق خواهیم شد و سپس سرور خود را توسعه خواهیم داد .
موفق باشید ...