PDA

View Full Version : مشکل با Broadcasting با INDY UDP در ویستا



samprp
دوشنبه 21 مرداد 1387, 17:26 عصر
سلام دوستان

با INDY 10 یه برنامه چت نوشتم
اولش یه پیغام رو Broadcast می کنه (با آدرس هاست 255.255.255.255 )
با دو تا سیستم XP درست جواب داده و به خوبی کار کرده.
ولی من XP با یه سیستم ویستا کار نمی کنه یعنی اصلا پیغام برد کست به سیسیم ویستایی نمی رسه. :متعجب:

حالا این سیستم ویستایی برنامه Vmware که ماشین مجازی هست رو نصب کرده و داخلشم XPرو نصب کرده (چون خودش XP نداشت) بعد از داخل اون دیگه مشکل فوق وجود نداره و من به راحتی پیغام برد کست می کنم و اون سیستم هم می فهمه . جواب می ده

دلفیم هم 2007 هستش و آدرسای ما هم استاتیکه .
indy هم که ورژن 10 هستش

دوستان به نظر شما راه حل چیه که تو ویستا هم برنامه جواب بده
با تشکر

vcldeveloper
سه شنبه 22 مرداد 1387, 00:18 صبح
خیلی از نرم افزارها و سخت افزارهای شبکه UDP Broadcast را فیلتر می کنند و اجازه انتشارش را نمیدند. تکیه کردن به این قابلیت UDP چندان جالب نیست.

hamedsoft
سه شنبه 22 مرداد 1387, 01:24 صبح
البته اون طرف تستر بنده بودم :لبخند:

علي جان به نظر من اگه از پروتکل TCP استفاده کني (البته خودم در مورد برودکست باهاش کار نکردم و نمي دونم دقيقا چطوريه يا ميشه يا نه) اما در ديگر موارد که ازش استفاده کردم خيلي راحت جواب داده اما UDP هميشه اذيتم کرده!

samprp
سه شنبه 22 مرداد 1387, 05:30 صبح
با تشکر از شما دوستان


خیلی از نرم افزارها و سخت افزارهای شبکه UDP Broadcast را فیلتر می کنند و اجازه انتشارش را نمیدند. تکیه کردن به این قابلیت UDP چندان جالب نیست.
ممنون علی آقا .
این جور که من فهمیدم TCP اصلا قابلیت Broadcasting نداره . و دوباره این جوری که من متوجه شدم تنها با UDP می شه این کار رو انجام داد .
من می خوام وقتی کاربر دکمه ای رو زد از اچرا بودن اون نرم افزار تو شبکه مطلع بشه یعنی بهمه که آیا دیگران هم اون رو اجراش کردن یا نه . و اگه اجراش کردن با Invite کردنشون و سپس ADD کردن به یه لیست امکان چت با اونا رو فراهم کنه
حالا اگه شما پیشنهاد یا روش دیگه ای می شناسین ممنون می شم بگید .


البته اون طرف تستر بنده بودم
فرقی نداره . سعید منظورم بود . :قهقهه:


اگه از پروتکل TCP استفاده کني
اصلا تو Indy تو خصوصیات TCP سرور و کلاینتش امکان فعالسازی Broadcast وجود نداره

منتظر پیشنهاد هاتون هستم.
باتشکر

vcldeveloper
سه شنبه 22 مرداد 1387, 15:43 عصر
این جور که من فهمیدم TCP اصلا قابلیت Broadcasting نداره .
بله نداره.


من می خوام وقتی کاربر دکمه ای رو زد از اچرا بودن اون نرم افزار تو شبکه مطلع بشه یعنی بهمه که آیا دیگران هم اون رو اجراش کردن یا نه . و اگه اجراش کردن با Invite کردنشون و سپس ADD کردن به یه لیست امکان چت با اونا رو فراهم کنه
حالا اگه شما پیشنهاد یا روش دیگه ای می شناسین ممنون می شم بگید .
همچین روشی چندان طرفدار نداره، چون اینجوری هر کی میتونه برای دیگران SPAM ارسال کنه، یکی از دلایل اصلی فیلتر شدن Broadcast در UDP همین هست. به نظر من، بهترین روش ایجاد یک سرور هست. درباره همین موضوع، در تاپیک دیگه ایی که آقای Hamid_Pak یک برنامه نمونه چت با UDP گذاشته بودند، صحبت کردیم.

samprp
سه شنبه 22 مرداد 1387, 16:51 عصر
بهترین روش ایجاد یک سرور هست

به خاطر پاسخ ممنون ... ولی آقای کشاورز
به نظر شما ارزش داره برای یه برنامه چت ساده که می خواد تو شبکه های کوچک راه اندازی بشه بخوایم یه سرور (هر قدر هم کم ارزش) در نظر بگیریم . می دونید به دنگ و فنگش نمی ارزه.

در ضمن برنامه های چت مشابه رو دیدید ، مثلا Outlook messenger (رباطی به Outlook express نداره). این برنامه خودش رو تو شبکه پیدا می کنه چه ویستا باشه چه XP . یعنی سرور براش مشخص نشده (پیر تو پیره) دارم رو این تحقیق می کنم که این نوع برنامه ها چی کار می کنن .

در ضمن Multicast چه فرقی با Broadcast داره ؟

پیشاپیش ممنون

hamedsoft
سه شنبه 22 مرداد 1387, 17:08 عصر
در ضمن Multicast چه فرقی با Broadcast داره ؟
Multicast يک فرستنده و چند گيرنده داره اما Broadcast يک فرستنده داره و تمامي کامپيوترهاي شبکه ملزم به اين هستند اين فريم رو علاوه بر اينکه دريافت مي کنند پردازش هم بکنند (که خب اين باعث ميشه ترافيک زيادي روي شبکه ايجاد بشه) البته گاهي اوقات اين فريم لازم هست که استفاده بشه اما مضرات زيادي هم براي شبکه داره که دو مورد رو ميگم:

1- باعث هدر رفتن قدرت پردازش تمامي کامپيوترهاي شبکه ميشه چون هر فريم Broadcast در شبکه به CPU (پردازنده) تمامي کامپيوترهاي موجود در اون شبکه يک وقفه ميده و حواس اونا رو پرت مي کنه!
2- پهناي باند شبکه رو نيز به شدت هدر ميده.

samprp
سه شنبه 22 مرداد 1387, 17:31 عصر
ممنون حامد جون


Multicast يک فرستنده و چند گيرنده داره اما Broadcast يک فرستنده داره و تمامي کامپيوترهاي شبکه ملزم به اين هستند اين فريم رو علاوه بر اينکه دريافت مي کنند پردازش هم بکنند
یعنی تو مولتی کست اونایی رو که باید دریافت کنن رو یکی یکی تعریف می کنی؟
در ضمن تو مولتی کست دیگه گیرنده ها پردازشش نمی کنن ؟

hamedsoft
سه شنبه 22 مرداد 1387, 18:30 عصر
یعنی تو مولتی کست اونایی رو که باید دریافت کنن رو یکی یکی تعریف می کنی؟
در ضمن تو مولتی کست دیگه گیرنده ها پردازشش نمی کنن ؟
اگه اشتباه نکنم بله، شما با استفاده از مولتي کست مي تونيد به يک گروه خاص از کامپيوترهاي شبکه فريم ارسال کنيد، در مورد پردازش هم اگه اشتباه نکنم هميشه اين کار صورت نمي گيره بر خلاف برودکست که براي هر فريم ارسالي هميشه پردازشي هم وجود داره.

البته بايد براي اين مورد اساتيد شبکه نظر بدن اما من هم يه سري اطلاعات در اين مورد داشتم که در اختيار دوستان قرار دادم.

لينک زير هم توضيحات نسبتا کاملي در اين مورد داده:
http://en.wikipedia.org/wiki/Multicast

vcldeveloper
سه شنبه 22 مرداد 1387, 19:26 عصر
برنامه های چت مشابه رو دیدید ، مثلا Outlook messenger (رباطی به Outlook express نداره). این برنامه خودش رو تو شبکه پیدا می کنه چه ویستا باشه چه XP . یعنی سرور براش مشخص نشده (پیر تو پیره) دارم رو این تحقیق می کنم که این نوع برنامه ها چی کار می کنن .
همچین کار خاصی هم نمیکنه! لینک زیر توضیحات خودشون هست:
http://www.outlookmessenger.com/OM/lan_messenger.asp

اینجور که مشخص هست، یا یک سرور برای Broadcasting در نظر می گیرند که اون وجود سایر کلاینت ها را بررسی میکنه، کلاینت ها هم به اون سرور Broadcasting وصل میشند و اطلاعات سایر کلاینت ها را می گیرند. یا میاد یک Range از IPهای استفاده شده را میگیره، همین ها را دائما بررسی می کنه تا ببینه آیا پورت مورد نظرش روی این IPها باز هست یا نه.
Offline message را هم فقط در صورتی که سروری وجود داشته باشه پشتیبانی میکنه، پس کلا میشه گفت کار خاص و عجیب غریبی انجام نمیده، این کار رو شما هم می تونید انجام بدید؛ یک IP Range از کاربر بگیرید، بعد اینها را Ping کنید تا معلوم بشه فعال هستند یا نه!

vcldeveloper
سه شنبه 22 مرداد 1387, 19:46 عصر
شاید این مطلب بدردتون بخوره، تا آخر نخواندمش، ولی اطلاعات خوبی درباره نحوه کار انواع شبکه های Peer-to-Peer و مزایا و معایبشون میده، به اضافه اینکه سعی کرده یک نرم افزار چت را روی یکی از این شبکه های Peer-to-Peer پیاده سازی کنه:
http://www.tml.tkk.fi/~anttiyj/Jalkanen-P2P.pdf

samprp
سه شنبه 22 مرداد 1387, 22:56 عصر
ممنون آقای کشاورز
به نظر که مفید می یاد
من می خونمش و نتیجه رو اینجا می گم
با تشکر از زحمتی که کشیدین.