ورود

View Full Version : مشکل دریافت در UDP



ب- تات
شنبه 15 خرداد 1389, 13:19 عصر
یک برنامه ساده client server البته نه برای چت داریم

تو این برنامه

TIdUDPClient
TIdUDPServer

داریم که هر دو باید روی پورت 1001 کار کنند. با یک برنامه دیگه فعالیت کارت شبکه دارم مانیتور میکنم . اطاعات طبق با دستور زیر ارسال میشه :


IdUDPClient1.Send('192.168.0.110',1001,'SOME TEXT ');

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

چطور میشه ارسال کننده هم از همان پورت 1001 اطلاعات رو ارسال کنه

حسین شهریاری
شنبه 15 خرداد 1389, 19:36 عصر
اما وقتی خروجی رو مانیتور میکنم اطلاعات به جای ارسال از پورت 1001 از بک پورت دیگه ارسال میشه

در هر حال از یک port دیگه ارسال میشه؟

احتمال نداره که اون port درهمون لحظه ای که شما اقدام به ارسال میکنید مشغول باشه؟

vcldeveloper
شنبه 15 خرداد 1389, 23:52 عصر
خب، باید هم مقصد پورت 1001 باشه! اون شماره پورتی که شما به عنوان پارامتر به متد Send ارسال کردید، شماره پورت مقصد هست، نه منبع. برای منبع باید به خصوصیت BoundPort مقدار بدید.

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

ب- تات
یک شنبه 16 خرداد 1389, 08:25 صبح
با تشکر از همه
خوشبختانه مشکل حل شد. دو متد ریر


TIdUDPClient.Binding.ClientPortMin := 1001

TIdUDPClient.Binding.ClientPortMax:= 1001

باعث میشه همیشه روی 1001 ارسال بشه اما در همون لحظه ارسال باید server را غیر فعال کنم تا تداخلی بوجود نیاد.