بارگیری...
خانه -> بلاگ
  • Follow Siavash on Twitter
  • Add Siavash on Facebook
  • Follow Siavash on Google+
بات:

ساخت روبات یاهو مسنجر - قسمت دوم
(پست شده در تاریخ 2008/01/02, 02:01:29)

توجه

در صورتي كه قصد دانستن جزئيات پروتوكل ياهو! مسنجر را نداريد و هدف شما تنها آنلاين كردن يك بات در ياهو! مسنجر مي باشد، مي توانيد به اينجا مراجعه كرده و سورس كد يك بات پايه ياهو! مسنجر را به زبان Visual Basic دريافت نماييد.

جلسه دوم

خیلی خوب با نام خدا جلسه دوم آموزش ساختن روبات یاهو! مسنجر رو شروع می کنیم...
Question level 2 ایول ایول...
Answer " به به میببنم که این جلسه خیلی سر حالی... "
خوب جلسه پیش به طور خلاصه توضیح دادیم که یاهو مسنجر چطوری به سرور کانکت میشه و چطوری ما به وسیله یاهو! مسنجر لاگین میشیم. جالا این جلسه میخوایم یه سری تعریفای مقدماتی مثل آی پی (IP) و پورت (Port) و سوکت (Socket)، و یه سری مفاهیم مثل طریقه فرستادن اطلاعات تو شبکه و انواع اون رو بگیم. چون اینا برای درست کردن یک روبات یاهو! مسنجر نیاز میشن!

تعاریف مقدماتی

Question level 2 آقا اجازه؟ این آی پی چیه؟
Answer " خودم الان داشتم می گفتم... یکم گوش بده چی می گم بعد سوال بپرس... "

تعریف آی پی و پورت

خوب. اولین تعریفها آی پی و پورت هستن. بذارید معنی اینا رو با مثال توضیح بدم. ببینید توی یه شهر کلی خونه هست که هر کدوم از خونه ها یه آدرس و پلاک مخصوص خودشونو دارن... مثلا میگیم تهران. خ شریعتی .... پلاک 9.1. آدرس همیشه منحصر به فرد هست یعنی دو تا خونه وجود ندارن که آدرسشون یکی باشه...
Question level 2 کی گفته آقا ما یه دوست داریم پلاک خونشون با پلاک خونه بقلیشون یکیه!!!
Answer " ببین من منظورم یه شهر قانونمند بود تهران رو نمیگفتم... "
خوب داشتم می گفتم. آدرس منحصر به فرد هست. این آدرس توی شهر همون آی پی هست توی شبکه. یعنی توی اینترنت (و کلا توی شبکه) هر کامپیوتری یه آدرس داره که بهش میگن آی پی.
حالا مثلا به دوستتون آدرس میدین بعد میگین رسیدی به خونمون از در جلو بیا تو یا از مثلا از در عقب بیا. یا اصلا میگی از پنجره بیا تو. به این میگن پورت. در اصلپورت یعنی از چه راهی به اون آدرس وصل بشیم. شاید این مثال بهتری باشه. آی پی آدرس هست و پورت جاده. از جاده های مختلف می شه با یه آدرس رسید.
Question level 2 آقا اجازه ما یه دوست دیگه داریم...
Answer " ساکت!!! میدونم چی میخوای بگی. تو شهری که من گفتم بین هر دو تا خونه حداقل چند تا راه هست... "
حالا که مفهوم آی پی و پورت رو فهمیدیم یکم در باره شکل ظاهری اونا توضیح میدم.
آی پی به شکل ###.###.###.### هستش که به جای هر کدوم از #ها یک عدد قرار میگیره. مثلا 84.241.32.64
پورت هم به طور معمول یک عدد هستش بین 1 تا 65536 (2 به توان 16) و پورت های کوچک هم (زیر 1024) معمولا رزرو شده هستن یعنی معلومه مخصوص چه کاری هستن. مثلا پورت 80 برای http هست یعنی وقتی میرید تو یه سایت اطلاعات اون سایت از طریق این پورت فرستاده میشه یا مثلا پورت 21 برای FTP هست. بعدا بیشتر درباره پورت توضیح میدم. قاعدتا الان زیاد نباید چیزی ازش فهمیده باشین.
Question level 4 آقا اجازه؟ ما فکر کنیم شما دارین آی پی پورت رو اشتباه تعریف می کنین. آی پی پورت از اون چیزاییه که وارد می کنیم بعد از فیلتر باهاش رد میشیم. همین دیروزم دوستم یه آی پی پورت حدید بهم داد.
Answer " ای بابا... چه ربطی داره! بذار برات توضیح بدم. ببین اول مختصرا باید بدونی چطوری سایتا رو فیلتر میکنن. شما وقتی میرید تو یه سایت اول براوزرتون (Browser) یه پیغام به آی اس پی (Internet Service Provider) میفرسته که من این سایت رو میخوام بعد آی اس پی آدرس رو چک می کنه اگه آدرس سایت جزو لیستی که باید فیلتر شه باشه اون صفحرو با اکسس بلاکد (Access Blocked) یا هر چیزی که براش تنظیم کرده باشن عوض میکنه و اونو بجای صفحه اصلی براتون میفرسته.
اون آی پی و پورتی که شما وارد میکنید آی پی و پورت یه پراکسی سرور (Proxy Server) هستش. کار پراکسی سرور اینه که اطلاعات رو بصورت غیر مستقیم بفرسته. یعنی وقتی شما اون آدرس رو وارد میکنید از اون به بعد میرید تو هر سایتی به جای اینکه براوزر به آی اس پی مستقیم بگه من این سایتو میخوام به پراکسی سرور میگه اون صفحرو بگیره بعد برای شما بفرسته. اینطوری در واقع گول می خوره آی اس پی.
پس شما اینو درست گفتین که اونا آی پی و پورت هستن ولی تعریف آی پی و پورت نیستن بلکه آی پی و پرت یا آدرس اون پراکسی سرور هستن. "
Question level 4 آهان پس اینطوریه.
خوب. یه قرار دادم میگم حالا. اگه یکی به شما بگه برو به فلان آی پی وصل شو معنی نداره. چون معلوم نیست از کدوم راه باید بهش وصل بشی. چون پورت رو مشخص نکرده. عین اینه که یه تک سیم به شما بدن بعد بگن اینو بزن به پریز و نگن به فاز بزن یا نول.
برای اینکه هی نگن به فلان آی پی با فلان پرت وصل شو یه قرار داد گذاشتن. میگن به IP:Port وصل شو. یعنی آی پی رو میگن و بعدش یه دو نقطه میذارن و بعد پورت رو میگن، مثلا: 84.241.32.64:21
Question level 2 ببخشید ما نفهمیدیم این فاز و نول چین؟
Answer " هیچی ولش کن. اونارو ندونیم می تونی روبات یاهو! مسنجر بسازی. "
Question level 3 آقا آی پی خودمونو از کجا میتونیم پیدا کنیم؟
Answer " اگر ویندوزتون XP باشه که خیلی راحت میتونن دوبار کلیک (Double Click) کنید روی عکس دو تا کامپیوترا که وقتی به نت وصل میشید میان بعد بزنید رو Details و آی پی که جلوی Client Address نوشته شده آی پی شماست. راه دیگشم اینه که برید تو Start->Run و بعد بنویسید cmd و اینتر (Enter) کنید تا Command Prompt باز شه و بعد بنویسید ipconfig و اینتر کنید. جلوی IP Address آی پی شما رو نوشته. "
Question level 5 ببخشید من وقتی تو کامپیوترم ipconfig رو میزنم دو تا IP Address میاد. ماجرا چیه؟
Answer " شما کامپیوترتون به شبکه داخلی هم وصله. درست عین اینه که دو تا خونه داشته باشی. حالا اینجا شاید سوال پیش باید بالاخره آدرس من کدومه؟ جوابشم اینه که شما تو شبکه داخلی (مثلا LAN) یک آدرس دارین و تو اینترنت هم یه آدرس دیگه. فهمیدن این هم که کدوم آدرس داخلیه و کدوم آدرس اینترنته معمولا آسونه چون آی پی داخلی معمولا با 192.168 شروع میشه. در ضمن بالای هر آدرس نوشته مربوط به کجاست مثلا اگه اینترنتتون دیال آپ (Dial Up) باشه بالای آدرس اینترنتتون نوشته PPP adapter. "

تعریف سوکت

خوب حالا میگیم سوکت چیه! سوکت یه مکانیسم ارتباط هست که اولین دفه روی ورژن BSD از سیستم عامل یونیکس ارائه داده شد. ما زیاد به این تعریفش کاری نداریم. شما در این حد بدونید که با استفاده از سوکت می تونیم اطلاعات رو تو اینترنت و کلا تو شبکه انتقال بدیم.
میشه به دو طریق با سوکت اطلاعات رو روی شبکه انتقال داد: TCP و UDP
که ما در بیشتر مراحل ساختن روبات باهو! مسنجر (به جز Voice Chat و Webcam) به نوع اول یعنی TCP نیاز داریم.
مختصرا توضیح میدم فرق این دو تا چیه:
  • TCP که مخفف Transmission Control Protocol هستش یه تیکه از اطلاعات رو میفرسته و بعدش منتظر میشه ببینه تمام اطلاعات کامل رسیده یا نه و اطلاعاتی که نرسیدرو دوباره میفرسته و دوباره همین کارو تکرار می کنه. خوبیشم اینه که تمام اطلاعات مطمعنا فرستاده میشه و بدیشم اینه که سرعتش کمتره نسبت به UDP چون کلی اطلاعات اضافی ردو بدل میشه برای اینکه چک بشه تمام اطلاعات کامل منتقل شده یا نه.
  • UDP که مخفف User Datagram Protocol هست دقیقا برعکس TCP هست یعنی پشت سر هم اطلاعات فرستاده میشه و چک نمیشه که همش رسیده.

وقتی شما دارین یه فایل رو دانلود (Download) میکنید از TCP استفاده میشه چون باید تمام اطلاعات به طور کامل دریافت شه اما وقتی مثلا ویس چت (Voice Chat) میکنید از UDP استفاده میشه چون مهم اینه چیزی که الان گفته میشه برسه برای همینه بعضی اوقات صدا قطع و وصل میشه. در ضمن ترتیب رسیدن هم معلوم نیست تو UDP یعنی ممکنه وقتی abc فرستاده میشه acb دریافت بشه برای همینه بعضی اوقات تو ویس چت صدا روباتی یا شطرنجی میشه.
خوب دیگه برای این جلسه کافیه! جلسه دیگه یاد میگیریم چطوری بفهمیم یه برنامه چه اطلاعاتی رو داخل شبکه ردو بدل می کنه و بعد میریم سراغ یاهو! مسنجر که ببینیم چیا میفرسته و دریافت میکنه تا بتونیم اصل روبات ساختن رو شروع کنیم.
Question level 2 خوب آقا... آخه خوب... خوب نمیشه الان بگین؟
Answer " اولا که ادا منو در نیار. دست خودم نیست میخوام حرفمو شروع کنم باید خوب رو بگم. دوما تو که تمام مدت داشتی میشمردی من چند بار خوب گفتم. چه فرقی برات میکنه بقیشو الان بگم یا نگم وقتی اصلا گوش نمیکنی. "
Question level 2 آخه تا الان شده 6 تا خوب اگه بقیشم الان بگید ممکنه بشه 10 تا خوب تو یه جلسه. اونطوری بهتره.
Answer " ببین شوخی بسه. خودتونو آماده کنید برای جلسه دیگه. "
Question level 3 ببخشید میشه به آقای Question level 4 بگید آی پی پورت پراکسی سرورو بلند بخونه؟
Answer " نه. بعد از کلاس خودتون ازش بپرسین. "
خوب دیگه بسه دیگه. خداحافظ.

تگ ها

programming, socket, tutorial, messenger, yahoo, network

نظرها

نام:
ایمیل:
وبگاه:
نظر:
 
reza:
پست شده در تاریخ 2013/01/01, 14:06:30
" خیلی استفاده کردم "
reza:
پست شده در تاریخ 2013/01/01, 14:04:29
" باحال بود "
علی:
پست شده در تاریخ 2012/02/12, 00:31:26
" خوبه "
maziar25:
پست شده در تاریخ 2011/11/17, 03:36:27
" modati migzare ke az robote shoma estefade mikonam va tanha barname nevisie hastin ke kare ba arzeshetoon ro free qarar midin shoma ham adami ba arzesh mesle bonian gozare linux hastin vaqti didam yeki mese khodam be in qazie takid dare ke be atrafianesh komak kone kheili khoshhal shodam va mamnoonam ke shoma be man email zadin.kheili doos daram dooste ba marami mese shoma dashte basham bazam mamnoon az zahamatetoon "
maziar:
پست شده در تاریخ 2011/10/18, 23:46:57
" bebakhshinda man qablan didam alanam didam am mizane "Page not found" va inke migam source maqsoodam be shekle text has man ke har kari kardam dasresi nadaram be in addressi ke shoma gozashtin moteasefane yeki mifrooshe va qeimate 25000 t rooye in barname gozashte va man ba voojood nadashtan sarmaye khodi intori dastam moonde too poos gerdoo "
maziar:
پست شده در تاریخ 2011/10/11, 16:07:10
" bebakhshid ha vali in kelas sargarm konande bood ama be man yad nemide ye robat besazam balke faqat organismesho tashrih mikone badesham kesi az barname nevisi kamelan agahe khod be khod idehaye be marateb behtari be zehnesh mirese va chizaye ajib tari ham misaze va be in matlab niazi nadare ama baraye avlesh khooobe chon jazabiate in mataleb ma ro be samte barname nevisi mikeshoone agar chan ta source ham baraye yad giri bezarin kheili ali mishe "
رضا:
پست شده در تاریخ 2011/07/03, 00:46:52
" خیلی عالی بود دستت درد نکنه "
پدرام:
پست شده در تاریخ 2011/04/14, 09:46:04
" کس ننه تو که هیچی حالیت نیست گه میخوری مطلب مینویسی "
رمضان:
پست شده در تاریخ 2011/03/08, 11:54:59
" مفید است بحث بیشتری گنجانده شود "
سعید:
پست شده در تاریخ 2011/02/27, 00:06:57
" روبات فارسی تکس یکی از جدید ترین روبات های ساخته شده یاهو و همیشه آنلاین روی سرور است jalebe age add konid yahoo: farsitechs@yahoo.com www.farsitechs.com "
كامران:
پست شده در تاریخ 2010/12/08, 14:53:17
" مرسي عالي بود اگه ادامه بدين عالي ميشه "
Farzad:
پست شده در تاریخ 2010/09/08, 06:04:36
" Mamnoonan Siavvash Jan , La Aghal Inja Dge Be Shoma Va Shakhsiatetoon Dge Tohin Nakardan [Albate Be Khodeshoon Tohin Mikonan]Kash In Comment Haro Bekhoonid ... Lotfan Edame Bedid "
علیرضا:
پست شده در تاریخ 2010/06/29, 00:10:14
" والا! این آقا سیاوش ما خوب مثل همه سرش شلوغه اما یک کمی همی بیخیال تشریف دارند ;) انگار نه انگار که وبسایت invisible.ir ایشان در ایران مسدود شده است! ای بابا ... "
dr.jezghel:
پست شده در تاریخ 2010/05/10, 03:51:26
" sia jan kheili alie wali heyf ke edamash nadadi alan 2 sale ke edame nadadi ino "
mehdi:
پست شده در تاریخ 2010/03/19, 04:42:55
" salam mamnun az matalebe jaleb va shiveye ghashangetun agha man nemitunam in source code ha ro bardaram mishe inja bezarineshun? "
mehrdad:
پست شده در تاریخ 2010/03/09, 15:44:46
" chetor mishe az roye ip mahal ro fahmid masalan in ip male kojast: 98.136.112.216 "
خودمم دیگه:
پست شده در تاریخ 2010/01/27, 11:40:01
" زود تند سریع ادامه این متن رو حاظر کن(این دستور بود نه خواهش) آها یافر رو می شه آپدیت کرد؟یک سری سوال پرسیدم بیچاره موند چی جواب بده.اگه بشه مسیج آرشیوش رو دید می تونی قابلیت هاش رو بالا ببری "
soraya:
پست شده در تاریخ 2009/11/17, 18:22:57
" عالیه همینطورادامه بدین "
کیوان:
پست شده در تاریخ 2009/02/22, 10:17:16
" سلام آقا معلم مطلبت خیلی با حال بود بازم بنویس "
ROver:
پست شده در تاریخ 2009/01/19, 11:50:49
" جالب بود! خوشم اومد! اما چرا جلسه هات 5 دقیقه هم طول نمی کشه؟ اگه میشه سریع تر و تند تر بنویس یا حد اقل وقتی تا حدی کامل شد با هم بزار! مرسی! "
اشکان:
پست شده در تاریخ 2008/09/27, 21:53:59
" سلام دوست عزیز ببین من بلد نیستم بسازم هر چی مطلاب وبلاگتو خودنم یاد نگرفتم اگه میشه یه روبات که ماله خودت برام بفرست تو ایدیم اد کن ممنون میشم gold_in_castle_leeyoungae_yangom "
امین:
پست شده در تاریخ 2008/09/04, 16:52:19
" خیلی عالی بود. واقعاً دستت درد نکنه. بی صبرانه منتظر جلسه ی بعدیم. "
سعید:
پست شده در تاریخ 2008/07/25, 17:29:49
" من سعیدم سلام لطفابه سایت سری بزن و نظر بده.خیلی خوشحال میشم اگه بتونیم باهم ارتباط برقرار کنیم ویبلا'گ www.ailar9.blogfa.com "
بهنام:
پست شده در تاریخ 2008/07/06, 00:24:57
" اقا خیلی باحال نوشتی.... "
به خر چه:
پست شده در تاریخ 2008/06/19, 19:52:44
" خیلی اهمقانه بود خراااااااا بیدار شیددددددددددددد آهای خرا "
نبی:
پست شده در تاریخ 2008/06/18, 04:21:57
" سبک باحالی توی آموزشهات داری ولی برای کسی که دنبال علم خالصه حوصلش سر میره ;) ولی ارزش صبر و تحمل بامزگیاش رو داره :-D الان شش ماه گذشته، انشااله چند سال دیگه سر بزنیم برای قسمت بعدی؟ :-D به هر حال تشکر "
mohammad:
پست شده در تاریخ 2008/06/08, 06:42:16
" heyf nist inhame khanande dari o mataleb o edame nemidi ???!!!! "
BeNi:
پست شده در تاریخ 2008/04/07, 01:46:19
" Felan KE Protcol YMSG12 Ride Shode Besh Coockie Nemigire "
نیما:
پست شده در تاریخ 2008/03/21, 23:35:09
" عالی بود استاد "
حامد:
پست شده در تاریخ 2008/02/12, 23:57:15
" بابا دمت گرم از این نوشته ات خیلی استفاده کردم بازم از این مقاله ها بنویس "
d-foil:
پست شده در تاریخ 2008/02/08, 12:35:52
" go alaki nakhor "
حمید:
پست شده در تاریخ 2008/01/17, 20:43:23
" فکر نکنم با پی اچ پی خالی بشه روبات یاهو ساخت چون پی اچ پی سوکتی که بتونه به مدت طولانی باز بمونه نداره. اونطوری هر مسیجی که بخواد بده باید اول کلی طول بکشه که لاگین کنه، اینطور نیست؟ "
behrad:
پست شده در تاریخ 2008/01/15, 02:50:26
" http://behi.freehostia.com/y in ye nemoone bombereshe :D "
behrad:
پست شده در تاریخ 2008/01/15, 02:49:34
" agha damet gholghol kheyli bahale vali midoonam ke dige edame nemidi pass baro bach berin http://www.mashatan.com/index.aspx?Pagename=Tools to in link ye robot yahoo donload konid rasti man ye robot ba php daram minevisam kasi nemikhad hamkari kone?! :D "
رزا:
پست شده در تاریخ 2008/01/12, 22:04:58
" سلام.ممنونم از مقاله ی جالبتون فقط امیدوارم ادامه داشته باشه و مث آموزش php نشه! "
sina:
پست شده در تاریخ 2008/01/06, 21:46:08
" مرسی از مقاله هات منتها با این سرعت 5 سال بعد فکر کنم بتونیم ربات بنویسیم :) "
joker:
پست شده در تاریخ 2008/01/04, 18:04:00
" mishe ya robat sakht ke harka30i ke adesh kard pasesho bezane yani ye robate hacker agar mishe be in id behem pm bedid MEHDI_JOKER011 "
ziaon:
پست شده در تاریخ 2008/01/04, 15:18:11
" edame bede lotfan "
richi:
پست شده در تاریخ 2008/01/04, 14:44:51
" دیوونتم دیوونه. تو رو خدا هر وقت چیز جدید نوشتی منو هم از طریق ای میل در جریان بزار. من می خوام برنامه هوشمند بنویسم .چیکار کنم؟؟؟؟؟ "
محیا:
پست شده در تاریخ 2008/01/04, 13:27:07
" ولی روبوتت خیلی خوشحاله "
محیا:
پست شده در تاریخ 2008/01/04, 13:24:26
" می شناسی که؟ هرچند که نمی دونم تو جای چند نفری و چی کار می کنی و سینا یی یا سیاوش یا... ولی به هرحال جالب بود "
مسعود:
پست شده در تاریخ 2008/01/04, 05:32:36
" سلام خسته نباشيد دوش آموزشتون واقعا عالي هست و تحسين برانگيز، حداقل براي من كه جالب بود. ممنون. "
mohesen:
پست شده در تاریخ 2008/01/04, 02:17:52
" خيلي باحاله !!! واقعا ديدمون رو باز كردي !!! بي صبرانه منتظر جلسه ي بعدي هستيم!!! "
ali:
پست شده در تاریخ 2008/01/02, 19:24:38
" عاليست بخصوص براي امثال من كه چيز زيادي از شبكه و كلااينترنت نميدونيم "
موسی:
پست شده در تاریخ 2008/01/02, 18:42:51
" مرسی نئو پدیا! "
bamdad:
پست شده در تاریخ 2008/01/02, 15:58:12
" بسیار عالی، منتظر سومیش هستیم :d "
روزبه:
پست شده در تاریخ 2008/01/02, 10:04:26
" مرسی D: "
محسن:
پست شده در تاریخ 2008/01/02, 04:00:28
" ممنونم. بسیار ساده و واضح بود. "
علی:
پست شده در تاریخ 2008/01/02, 03:51:11
" عالییییه! ادامه بدید لطفا. مرسی! "