PDA

View Full Version : سوکت پروگرامینگ Server and Multi Clients



20temp
جمعه 18 اسفند 1391, 11:15 صبح
سلام عرض میکنم خدمت دوستان عزیز انجمن برنامه نویس.

چند سوال در رابطه با برنامه نویسی سوکت در سی شارپ دارم که برام مبهمه !!!!!

من در یک کافی نت 10 تا کلاینت دارم. برنامه ای میخوام بنویسم که وقتی نسخه کلاینت روی تک تک کلاینت ها اجرا میکنم به سرور وصل بشه و قابلیت ارسال پیام رو داشته باشه. نکته ای که هست اینه که نمیخوام سوکت قطع بشه میخوام سرور هز زمانی که میخواد یک پیام به کلاینت بفرسته . نه اینکه بیاد دوباره سوکت بسازه پیام بفرسته و قطع کنه . نمیدونم میتونم منظورم رو برسونم :متفکر:

1- چطوری باید اینکار رو انجام بدم ؟ روال کار به چه شکلیه ؟
2- آیا برای 10 کلاینت باید 10 تا سوکت ایجاد بشه ؟
3- آیا هر کلاینت باید با یک پورت مجزا به سرور وصل بشه ؟ یعنی سرور باید روی 10 پورت شنود کنه؟
4- وقتی بخوام به فرض مثال به کلاینت 5 یک متن بفرستم از توی سرور چطور تشخیص بدم به کدام سوکت باید پیغام بدم؟
5- اصلا از کجا بفهمم که سوکت هنوز وصله ؟
6- در ضمن برای ارسال هر دستور در یک Thread جداگانه دستورات رو باید به چه شکلی بنویسم ؟

دوستان عزیز اگه امکان داره با مثال برام توضیح بدید راستش پروژه ترم آخره خیلی نیاز بهش نیاز دارم.
با تشکر

abbas.oveissi
جمعه 18 اسفند 1391, 12:59 عصر
سلام عرض میکنم خدمت دوستان عزیز انجمن برنامه نویس.

چند سوال در رابطه با برنامه نویسی سوکت در سی شارپ دارم که برام مبهمه !!!!!

من در یک کافی نت 10 تا کلاینت دارم. برنامه ای میخوام بنویسم که وقتی نسخه کلاینت روی تک تک کلاینت ها اجرا میکنم به سرور وصل بشه و قابلیت ارسال پیام رو داشته باشه. نکته ای که هست اینه که نمیخوام سوکت قطع بشه میخوام سرور هز زمانی که میخواد یک پیام به کلاینت بفرسته . نه اینکه بیاد دوباره سوکت بسازه پیام بفرسته و قطع کنه . نمیدونم میتونم منظورم رو برسونم :متفکر:

1- چطوری باید اینکار رو انجام بدم ؟ روال کار به چه شکلیه ؟
2- آیا برای 10 کلاینت باید 10 تا سوکت ایجاد بشه ؟
3- آیا هر کلاینت باید با یک پورت مجزا به سرور وصل بشه ؟ یعنی سرور باید روی 10 پورت شنود کنه؟
4- وقتی بخوام به فرض مثال به کلاینت 5 یک متن بفرستم از توی سرور چطور تشخیص بدم به کدام سوکت باید پیغام بدم؟
5- اصلا از کجا بفهمم که سوکت هنوز وصله ؟
6- در ضمن برای ارسال هر دستور در یک Thread جداگانه دستورات رو باید به چه شکلی بنویسم ؟

دوستان عزیز اگه امکان داره با مثال برام توضیح بدید راستش پروژه ترم آخره خیلی نیاز بهش نیاز دارم.
با تشکر

دوست عزیز شما باید یه برنامه سرور بنویسید و یه برنامه کلاینت . سرور فقط از یک پورت استفاده میکنه اما وقتی کلاینت ها بهش وصل بشن برای هر کلاینت یک ترد جداگانه درست میکند تا بتواند باهاشون در تعامل باشد.بعد میتونی یک لیست از کلاینت ها که بهت وصل هستن داشته باشی ،و کنارشون یه اسم ذخیره بکنی تا بدونی هر کلاینت کدام سیستم است.موقع ارسال پیام از اون لیست کلاینت را پیدا کن.نمیدونم کمکی بهت شد یا نه

20temp
جمعه 18 اسفند 1391, 19:49 عصر
سلام آقا عباس.
راستش من خیلی از سورس کدهای codeproject و stackoverflow و C#‎dreamcode و خیلی از سایت های خارجی رو دیدم ، حتی وبلاگ قبلی خود شما تو میهن بلاگ برای درک مفاهیم خیلی بهم کمک کرد.
اما متاسفانه هنوز یه برنامه ایی خوب که باگ نداشته باشه نتونستم بنویسم. الانم از کامپوننت Socket استفاده می کنم زیاد از کلاس های تعریف شده اون سردرنمیارم
من سورس socket.dll دارم ، مثالش رو گذاشتم میتونید دانلود کنید ، اگه وقت دارید زحمت بکشید یه نگاهی بهش بندازید توی lan با دو سیستم تست کردم جواب نمیده !!

101125

_behnam_
جمعه 18 اسفند 1391, 22:06 عصر
اینجا نمونه کد و پروژه هست (http://www.codeproject.com/Articles/10743/Simple-Socket-Control-s-to-Create-Server-Client-Ap)

abbas.oveissi
جمعه 18 اسفند 1391, 22:48 عصر
سلام آقا عباس.
راستش من خیلی از سورس کدهای codeproject و stackoverflow و C#‎‎‎dreamcode و خیلی از سایت های خارجی رو دیدم ، حتی وبلاگ قبلی خود شما تو میهن بلاگ برای درک مفاهیم خیلی بهم کمک کرد.
اما متاسفانه هنوز یه برنامه ایی خوب که باگ نداشته باشه نتونستم بنویسم. الانم از کامپوننت Socket استفاده می کنم زیاد از کلاس های تعریف شده اون سردرنمیارم
من سورس socket.dll دارم ، مثالش رو گذاشتم میتونید دانلود کنید ، اگه وقت دارید زحمت بکشید یه نگاهی بهش بندازید توی lan با دو سیستم تست کردم جواب نمیده !!

101125

سلام آقا :دی
من وبلاگ قبلیم wordpress بوده و آدرسش programming.gigfa.com بود،حالا نمیدونم اشتباه گرفتی یا اشتباه آدرس رو گفتی :لبخند:
ببین شروع کن از ساده ترین مثال که فقط اتصال سرور و یک کلاینت است ،بعد مثلا پیام بهم بفرستن،بعد چنتا بشن و ...
اگه اینجوری کار کنی خیلی بهتره،وگرنه مثال هایی هم پیدا میکنی خیلی سختن.من دوتا مثال برات میذارم،برای قدیم ها هست اما فکر کنم برای شروع خوبه.اگه مفاهیم رو یادبگیری خیلی بهتره چون مرحله مرحله بی نیاز به حتی نمونه کد میتونی برنامتو گسترش بدی.
الان حال ندارم چک کنم چی هستن دقیقا :لبخند: اما چون برای آموزش نوشتمشون.فکر کنم بهت کمک کنه :لبخند: