سلام دوستان
میخوام یه برنامه چت درست کنم زمانی که یک سرور و یک کلاینت داشته باشیم مشکل خاصی وجود نداره ولی وقتی قرار باشه چند نفر از برنامه استفاده کنند روش کار چطور میشه؟(مثل یاهو مسنجر)
ممنون میشم راهنمایی کنید
یک یه یک که معلومه! یدونه سرور داری و یدونه کلاینت
یک به چند؛ یعنی چندتا کلاینت داری و یدونه سرور؛
کلاینت ها که معلومه! فقط یه اتصال دارن؛
اما سرور باید مسخصات تمام اتصالها رو نگه داره و هر پیام تازهای که اومد یکی یکی توی تمام اتصالات بنویسه!
حالا اگه بخوایی سرور هم چندین کانال مختلفف رو پرداز کنه؛ باید از فرزند و .. اینجور چیزا استفاده کنیم که میشه گفت این میشه چند به چند!
(۲۵-خرداد-۱۳۹۲, ۱۰:۴۵:۲۴)babyy نوشته است: [ -> ]یک یه یک که معلومه! یدونه سرور داری و یدونه کلاینت
یک به چند؛ یعنی چندتا کلاینت داری و یدونه سرور؛
کلاینت ها که معلومه! فقط یه اتصال دارن؛
اما سرور باید مسخصات تمام اتصالها رو نگه داره و هر پیام تازهای که اومد یکی یکی توی تمام اتصالات بنویسه!
حالا اگه بخوایی سرور هم چندین کانال مختلفف رو پرداز کنه؛ باید از فرزند و .. اینجور چیزا استفاده کنیم که میشه گفت این میشه چند به چند!
ممنون
میشه بیشتر توضیح بدید؟من میخوام چند تا سرور و چند تا کلاینت داشته باشم
چیش رو توضیح بدم؟
اون چند تا سرور در واقع همون یه سرور هست که n بار تکرار شده!
(۲۵-خرداد-۱۳۹۲, ۱۱:۰۲:۵۰)babyy نوشته است: [ -> ]چیش رو توضیح بدم؟
اون چند تا سرور در واقع همون یه سرور هست که n بار تکرار شده!
روش کارش را دقیق تر توضیح بدید ممنون میشم!
خب وقتی چند بار تکرار میشه چطوری باید هر سرور بفهمه که پیامی که اومده مال اونه؟
۲ راه دارید واسه اینکه چند تا سرور راه بندازین
راه اول اینه که چند تا سرور که هر کدوم روی یه پورت خاضی گوش میکنند (سرور اولی روی مثلا ۵۵۵ دومی روی ۵۵۶ و ...)
که روش خوبی نیست! ما روشی میخواییم که سرور روی یه پورت گوش کنه و چندتا سرویس میختلف ارایه بده!
پس میاییم از همانند سازی پورسه ها اجرا میکنیم! بهش میگن fork ! یا با ترد (thread) هم میشه!
اینطوری بار سرور روی چند تا پروسه تقسیم میکنیم تا بتونیم هم سرویس بدیم هم کارهای دیگه رو همزمان انجام بدیم!
اینکه چه پیامی برای چه کسی هست هم باید واسه سیستمتون هدر درست کنید که خودش مشخص کنه به چه کسی میخوایین پیام ارسال داشته باشد! و ....
خودمم نفهمیدم جی گفتم

(۲۵-خرداد-۱۳۹۲, ۱۳:۵۸:۰۷)babyy نوشته است: [ -> ]۲ راه دارید واسه اینکه چند تا سرور راه بندازین
راه اول اینه که چند تا سرور که هر کدوم روی یه پورت خاضی گوش میکنند (سرور اولی روی مثلا ۵۵۵ دومی روی ۵۵۶ و ...)
که روش خوبی نیست! ما روشی میخواییم که سرور روی یه پورت گوش کنه و چندتا سرویس میختلف ارایه بده!
پس میاییم از همانند سازی پورسه ها اجرا میکنیم! بهش میگن fork ! یا با ترد (thread) هم میشه!
اینطوری بار سرور روی چند تا پروسه تقسیم میکنیم تا بتونیم هم سرویس بدیم هم کارهای دیگه رو همزمان انجام بدیم!
اینکه چه پیامی برای چه کسی هست هم باید واسه سیستمتون هدر درست کنید که خودش مشخص کنه به چه کسی میخوایین پیام ارسال داشته باشد! و ....
خودمم نفهمیدم جی گفتم 
مرسی
همون روش پرت جالبه قبلا هم به ذهن خودم رسیده بود ولی خب اینطور که معلومه بهترین راه