ورود

View Full Version : Indy ارسال پیغام به کلاینت



narsic
سه شنبه 06 مرداد 1388, 01:19 صبح
با سلام
دوستان یه برنامه دارم یه سرور به همراه چندین تا کلاینت حالا سوآلم اینه که چجوری میتونیم به سیستم سرور بگیم که پیغام رو به کدوم یکی از سیستم ها تحویل بده یعنی به کدوم IP .
یه نکته اگه بخوام متن رو در شبکه و بدون هدف بنویسم تا سیستم مقصد تسخیص بده پیام متعلق به خودشه به جز ترافیکی که در شبکه ایجاد میکنم متاسفاه پیغام به آخرین سیستمی میرسه که Port رو باز کرده چون اگه بشه میخوام همه ی برنامه ها روی یک Port باز بشن .
تعداد کلاینت ها هم متغیر هستش .
با تشکر

vcldeveloper
سه شنبه 06 مرداد 1388, 02:05 صبح
هر کلاینت که به سرور وصل میشه، آدرس IPاش مشخص هست. آن را جایی ذخیره کنید، و از همان طریق با آن ارتباط برقرار کنید.

narsic
سه شنبه 06 مرداد 1388, 15:33 عصر
مشکل من هم اینه که نمیدونم چه قسمتی رو با IP کلاینت مقدار دهی کنم که سرور تنها به اون کلاینت درخواست رو تحویل بده ؟؟

Felony
سه شنبه 06 مرداد 1388, 16:22 عصر
مشکل من هم اینه که نمیدونم چه قسمتی رو با IP کلاینت مقدار دهی کنم که سرور تنها به اون کلاینت درخواست رو تحویل بده ؟؟
متد Host رو با IP کلاینت مورد نظر مقداردهی کنید .

vcldeveloper
سه شنبه 06 مرداد 1388, 18:16 عصر
بطور کلی سرور به نرم افزاری گفته میشه که به درخواست های کلاینت پاسخ میده؛ یعنی هر زمان که کلاینت درخواستی داشت، یک Thread مستقل برای اون درخواست در سمت سرور ایجاد میشه، و سرور میتونه از همون طریق به کلاینت جواب بده.

اگر شما سروری دارید که میخواید بدون درخواست کلاینت براش چیزی ارسال کنه، اون وقت دیگه سرور شما در نقش سرور ظاهر نشده، بلکه خودش برای این کار کلاینت هست، و کلاینت دریافت کننده پیام نقش سرور را بازی میکنه. حالا، یا کلاینت های شما باید همیشه هر چیزی که برای کلاینت روی پورت مورد نظر ارسال میشه رو بخوانند، به امید زمانی که سرور پیامی برایشان ارسال کند، یا اینکه شما باید در سمت کلاینت هم یک کامپوننت IdTCPServer داشته باشید و یک کامپوننت IdTCPClient هم در سمت سرور، که هر زمان سرور شما خواست پیامی به کلاینت خاصی ارسال کند، بتواند از طریق کامپوننت IdTCPClient خودش و آدرس IPایی که از کلاینت دارد، به IdTCPServer کلاینت متصل شده، و پیام را به آن ارسال کند.

khazaie01
یک شنبه 11 مرداد 1388, 11:08 صبح
سلام دوستان
من خواستم تو برنامه از هر دو کامپوننت (کلاینت و سرور ) استفاده کنم ولی نشد ... مثالی برای این مورد دارید ؟ فرض کنید یک برنامه برای چت کردن میخواهیم بنویسیم خوب اینجا 1 برنامه داریم که هم کلاینت و هم سرور... چجوری میشه همچین کاری کرد ؟ مثال آماده ای هست ؟
ممنون

vcldeveloper
یک شنبه 11 مرداد 1388, 21:48 عصر
من خواستم تو برنامه از هر دو کامپوننت (کلاینت و سرور ) استفاده کنم ولی نشد
مشکلتون چی بود؟


فرض کنید یک برنامه برای چت کردن میخواهیم بنویسیم خوب اینجا 1 برنامه داریم که هم کلاینت و هم سرور... چجوری میشه همچین کاری کرد ؟ مثال آماده ای هست ؟
ممنون
فکر کنم قبلا آقای Touska یک نمونه در سایت گذاشته بودند.