PDA

View Full Version : سوال: ارسال اطلاعات روی خط به نحوی که اطلاعات فقط بدست اولین گیرنده برسد



masoudmmd
چهارشنبه 15 دی 1389, 09:31 صبح
سلام منو ببخشید که از این اسم برای تاپیک استفاده کردم .

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

C Sharp
چهارشنبه 15 دی 1389, 10:09 صبح
سوالتون واضح نیست ، ممکنه بیشتر توضیح بدین ؟

masoudmmd
چهارشنبه 15 دی 1389, 10:54 صبح
ببین دوست من . من یه برنامه دارم که توش یه فایل exe دیگه رو که اون هم یه برنامه #C هست رو به تعداد دلخواه صدا میزنه و اجرا میکنه . به این صورت که برنامه اصلی رو مادر یا سرور و ریز برنامه ها رو فرزندان یا کلاینت فرض کن .
حالا من میخوام از مادر با سوکت اطلاعات به فرزندا انتقال بدم ولی نه اینکه همزمان به همه فرزندا . میخوام اطلاعات رو روی پورت بزارم و هر فرزندی که اول به پورت سر زد اون برداره و مادر هم همزمان پورت رو چک کنه که اگه خالی بود یه اطلاعات دیگه روش بزاره که فرزند بعدی بیاد و برداره و به همین صورت تا انتها.
:ناراحت:

abbas.oveissi
چهارشنبه 15 دی 1389, 22:07 عصر
کمککککککککککککککککککککککک ککککککککککککککککککککککککک کک

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

masoudmmd
پنج شنبه 16 دی 1389, 00:09 صبح
برادر من مشکل من این نیست که سرور از دریافت اطلاعات توسط کلاینت ها مطلع نمیشه مشکل اینه که فقط یک کلاینت باید اطلاعات رو برداره در صورتی که همه کلاینت ها به پورت گوش میدن و همه با هم اطلاعات رو برمیدارن .

Amir Oveisi
سه شنبه 21 دی 1389, 12:11 عصر
با سلام
خوب شما کافیه که یک پورت رو سرور open داشته باشید، و سرور دیتایی رو که آماده کرده، روی سرور قرار بده و این قابلیت رو ایجاد کنه که هر client ای بتونه از طریق اون پورت به اون دیتا دسترسی داشته باشه.
client ها همشون در رقابت برای خوندن اون دیتا با پورت مورد نظر روی سرور تلاش می کنن، هر client بصورت مستقل و بدون اطلاع از وجود client های دیگه، به شکل متناوب در حال تلاش برای ارتباط با سروره (مثلا با یک thread یا هر مکانیزم دیگه). هر زمان که client ای موفق به اتصال به سرور و دریافت دیتا شد، سریع سرور رو ترک می کنه تا سرور برای دیتای بعدی آماده کنه خودش رو. در این حال که دیتا تغییر کرده، برای اطلاع کلاینت ها میشه 2 روش استفاده کرد: یکی اینکه همون لحظه سرور به همه کلاینت ها یک پیام بده و اونارو مطلع کنه. دو اینکه سرور هیچ کاری نکنه و هر موقع client ای تونست به سرور متصل بشه، همون جا چک بشه ببینه این دیتا رو میخواسته یا نه.
اگر درست متوجه سوالتون نشدم لطفا بیشتر توضیح بدید.

موفق باشید