در زبان C یک سرور UDP ساده با استفاده از هدر netinet/in.h بنویسید که روی پورت 9000 گوش دهد، پیام‌های دریافتی را دریافت کند و آدرس IP و پورت فرستنده را چاپ و همان پیام را به فرستنده بازگرداند.

6.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:31

0.0

برای حل این مسئله از توابع socket، bind، recvfrom و sendto استفاده کنید و ساختار sockaddr_in را از هدر netinet/in.h برای تنظیم آدرس سرور و خواندن آدرس کلاینت به کار ببرید؛ آدرس را می‌توانید با inet_ntop یا inet_ntoa (در arpa/inet.h) چاپ کنید. نکات: از htons برای پورت و INADDR_ANY برای bind استفاده کنید، یک حلقه برای دریافت مکرر پیام‌ها پیاده‌سازی کنید، با بررسی مقدار بازگشتی توابع خطاها را هندل کنید و در پایان سوکت را با close ببندید.

توسط پژوهشگر در 201 روز قبل ساعت 03:31
دسته بندی ها: C for beginner
sara در 201 روز قبل ساعت 06:09

برای یک سرور UDP ساده روی پورت 9000، یک سوکت با AF_INET و SOCK_DGRAM ایجاد کنید و با INADDR_ANY و htons(9000) در ساختار sockaddr_in مقداردهی و آن را bind کنید. برای چاپ آدرس فرستنده از inet_ntop استفاده کنید تا آدرس IPv4 به صورت رشته چاپ شود (استفاده از inet_ntoa هم ممکن است اما inet_ntop امن‌تر است). یک حلقه بی‌پایان با recvfrom و sendto پیاده‌سازی کنید تا پیام‌ها را دریافت کرده و همان پیام را به فرستنده بازگردانید و مقدار بازگشتی توابع را برای هندل کردن خطاها بررسی کنید. در پایان سوکت را با close ببندید و در صورت نیاز گزینه‌های غیرمسدودسازی یا بازنشانی پورت را با SO_REUSEADDR مدنظر قرار دهید.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری