در زبان 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 ببندید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای یک سرور 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 مدنظر قرار دهید.
گزارش