C++ & C# Network Programing

H.r.Ghanbari

عضو جدید
حتما با سایت هایی مثل RapidShare , 4share , FileSonic , ... کار کردید...
دارم روی یه برنامه کار می کنم که تقریبا میشه اونو در مجموعه Premiunm LInk Generator ها قرار داد
می خواستم در مورد بحث را بندازیم و یه نرم افزار ساده اگه تونستیم با کمک هم بنویسیم
ممنون دوستان;)
 

Meisam007

عضو جدید
حداقل در مورد رپیدشر غیرممکنه چون رپیدشر لینک پریمیوم نداره و حساس به ip هست و مگر اینکه بخواید تایمر رو دور بزنید که باز هم پریمیوم نیست
 

H.r.Ghanbari

عضو جدید
در مورد RapidShare یا هر سایت دیگه ای که Wait Time می ده از یه Client Side Script ی استفاده کردم که Open Source هم هستش و فقط روی Mozila FireFox کار می کنه, شاید شما هم استفاده کرده باشی, که به Skip Wait Time معروف هستش, که زمانهای انتظار رو تا حدی می شه گفت دور می زنه...
مثال سایت http://grandleech.com یا www.leechking.com/ و یا leechtube.com/ ویا چند ده تا سایت دیگه...
می یاد لینک و می گره یه لینک دیگه می ده که این لینک هم روش Resume فعال هستش و هم Parallel می تونی دانلود کنی و هم سرعت دانلود تا 180 KBps رسیده...
این سایتها برای مثال واقعا این سایتها رو دور میزنن یا اینکه نه یکی اشتراک خریده و داره به ما حال میده!!!:surprised::D
 

H.r.Ghanbari

عضو جدید
مقدمه

مقدمه

با اجازه دوستان چند فصل در مورد برنامه نویسی شبکه می خوام بنویسم...
اگه دوستان در تکمیلش کمکم کنند بسیار عالی میشه;)
 
آخرین ویرایش:

H.r.Ghanbari

عضو جدید
Chapter 1

Chapter 1

فرض کنید دو تا نرم افزار بخوان از طریق پروتکل TCP/IP با هم حرف بزنن.( Client/Server )
نرم افزاری رو بهش Server میگیم که معمولا منتظر تقاضا از طرف Client باشه.
این ماشین حالت برای زمانی است که شما در برنامه Socketی با پشتیبانی از پروتکل TCP ایجاد کرده باشین.
شما در فراخوانی روتین ها بایستی دقیقا بهمین شکل عمل کنید.
این دیاگرام بجز موارد جرئی تمامی اصول رو در بر دارد.
Server:
1. ابتدا یک Socket ایجاد می کنید که پروتکل TCP رو پشتیبانی کنه.
2. یه پورت خاصی رو مانیتور می کنید؛ معمولا از هر آدرسی که این تقاضا بیاد می تونیم قبول کنیم. ) listen (
3. اگه تقاضای جدیدی اومده باشه و می تونیم Accept اش کنیم.
بعد از Accept کردن می شه داده رد و بدل کرد.
4. اگر سوکت از طرف سرور بسته بشه هیچ پیامی به کلاینت نمی رسه، یعنی کلاینت زمانی متوجه بسته شدن سوکت می شه که
بخواد داده جدیدی بفرسته و به خطا بخوره و یا در وسط ارسال داده متوجه به قطع ارتباط میشه.
Client:
1. ابتدا یک Socket ایجاد می کنید که پروتکل TCP رو پشتیبانی کنه.
2. (Connect ) بعد بایستی تقاضای اتصال رو روی پورنی که سرور مانیتور می کنه بفرستیم( IP سرور هم که دیگه باید درست باشه!)
3. بعد شروع به انتقال داده می کنیم.
4. اگر قطع ارتباط از طرف کلاینت باشه حتما یه Event به سرور فرستاده می شه جهت اطلاع آن و سرور هم ارتباط رو می بنده.
بحث اتصال گرا بودن در برنامه نویسی به این اشاره دارد که طرف سرور بایستی عمل Listening ,و بعد از آن عمل Accept را در ابتدار برقراری هر ارتباطی اجرا کنه و در پایان روتین Close.
بحث اتصال گرا بودن طرف Client به این اشاره دارد که بایستی روتین Connect برای هر ارتباطی ابتدا فراخوانی بشه و در پایان نیز روتین Close. ( هر اتصال )
( نکات ارتباط اتصال گرا به مرور تکمیل می کنیم با دوستان و فعلا کافیه! )





(تکمیل خواهد شد:D)
 

Meisam007

عضو جدید
در مورد RapidShare یا هر سایت دیگه ای که Wait Time می ده از یه Client Side Script ی استفاده کردم که Open Source هم هستش و فقط روی Mozila FireFox کار می کنه, شاید شما هم استفاده کرده باشی, که به Skip Wait Time معروف هستش, که زمانهای انتظار رو تا حدی می شه گفت دور می زنه... مثال سایت http://grandleech.com یا www.leechking.com/ و یا leechtube.com/ ویا چند ده تا سایت دیگه... می یاد لینک و می گره یه لینک دیگه می ده که این لینک هم روش Resume فعال هستش و هم Parallel می تونی دانلود کنی و هم سرعت دانلود تا 180 KBps رسیده... این سایتها برای مثال واقعا این سایتها رو دور میزنن یا اینکه نه یکی اشتراک خریده و داره به ما حال میده!!!:surprised::D
اون سایت ها اکانت پرمیوم دارند و میریزن روی سرورشون و جدیدا هم تبلیغات کلیکی دارن که پول اکانت و سرور رو هم از این راه درمیارن
 

H.r.Ghanbari

عضو جدید
Appendix 1-001

Appendix 1-001

Unicast vs. Multicast vs. Broadcast
برای چندین سال واژه Multicast برای خیلی از افراد نامفهوم بود.
بنابراین توصیف واژه Multicast بسیار ارزشمند خواهد بود. واژه های Unicast, Multicast برای توصیف نسبت به واژه Broadcast که بسیار متداول است نیاز به مفاهیم بیشتر و ریزتری برای درک آن دارد. ( در چند سطر سعی در خلاصه کردن داریم!)
بطوریکه Broadcast مفهوم فرستادن به همه افراد را می رساند برای مثال رادیو ، TV و ماهواره و مانند ان.
دو واژه دیگر مجموعه محدود شده ای از گیرنده ها در بردارد.
Unicast درست در مقابل Broadcast قرار دارد و این مفهموم را می رساند، که ارسال تنها به یک کاربر صورت می پذیرد. از این رو “واحد = Uni “ با واژه " ارسال = Cast " تر کیب شده است.
بنابراین Multicast نیز ارسال " چندین = Multi- " به چندین کاربر را می رساند، بیش از یک و نه برای همه.
در جهان رادیو و TV ، Broadcast کردن برای همه افراد نمی باشد بلکه برای کاربرانی است که این سیگنالها را اگر در محدوده شبکه قرار دارند ، دریافت خواهند کرد. بنابرین اگر کاربری درمحدوده شبکه این سیگنالها باشد پتانسیل دریافت سیگنالها را خواهد داشت.
TV از ترکیبی از ماهواره و کابل و چیزهای مثل اینها استفاده می کند تا از شبکه Broadcast استفاده کند. شبکه های سنتی Broadcast برای تحویل سریع سیگنال با کارایی بالا، به همه طراحی شده بودند.
تا وقتی که توانستند بصورت فنی یک ارسال Unicast به انجام برسانند درشرایطی که یک سیگنال Broadcast ارسال می کنند اما انتظار دارند تنها این داده به یک کاربر برسد و فقط همان کاربر آنرا پردازش کند – بنابرین سیگنال بصورت ذاتی Unicast نمی باشد.
Multicast نیز به همین روش پیاده سازی می شود:
یک سیگنال Broadcast به همه ارسال می شود اما انتظار داریم زیر مجموعه ای از این گیرنده ها آنرا دریافت کنند و سیگنال را پردازش کنند.
اینترنت در ابتدا برای این منظور طراحی شده بود که در محدوده کل اینترنت قابلیت Unicast را داشته باشد و از امکانات Broadcast بصورت محلی استفاده شود.
Broadcast بصورت گسترده در شبکه های LAN مورد استفاده قرار می گیرد. برای مثال نمونه ای از پروتکل Broadcast ، Shared Ethernet می باشد.
نکته بسیار مهم اینجاست که Multicast تنها با پرتکل UDP کار می کندو با پروتکل TCP کار نمی کند.
مفاهیم به این اشاره دارن که UDP شهرت خوبی در امنیت ، تحویل صحیح ، کنترل و ... ندارد.( در مقابل TCP ).:)
H.R.Ghanbari 2011.12
 
آخرین ویرایش:
بالا