با استفاده از پایتون یک سرور TCP ساده بنویسید که با socket.bind به آدرس و پورت مشخص وصل شود، درخواست HTTP از کلاینت بخواند و یک پاسخ HTTP ساده شامل هدرهای Status, Content-Type و Content-Length ارسال کند.

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

0.0

از ماژول استاندارد socket در پایتون استفاده کنید: یک socket بسازید، گزینه SO_REUSEADDR را تنظیم کنید، سپس با socket.bind به آدرس و پورت موردنظر متصل شوید، listen و accept را فراخوانی کنید. پس از دریافت داده‌های ورودی (recv)، یک رشته پاسخ HTTP درست کنید که شامل خط وضعیت، هدرها (هر هدر با \r\n جدا شود) و یک خط خالی قبل از بدنه باشد؛ اندازه بدنه را در Content-Length قرار دهید و خروجی را با sendall ارسال کنید. برای تست می‌توانید از curl یا مرورگر استفاده کنید؛ توجه کنید داده‌ها به بایت تبدیل شوند و پس از پاسخ اتصال را به درستی ببندید.

توسط پژوهشگر در 201 روز قبل ساعت 03:52
دسته بندی ها: Python Python for beginner
sara در 201 روز قبل ساعت 04:51

برای راه‌اندازی پایدار، قبل از bind گزینه SO_REUSEADDR را فعال کنید تا در راه‌اندازی مجدد با خطا مواجه نشوید. درخواست HTTP را می‌توانید تا پایان خط‌های CRLF و رسیدن به \r\n\r\n بخوانید تا headerها کامل شوند و بدنه جدا گردد. پاسخ HTTP را با خط وضعیت، headers و یک خط خالی قبل از بدنه بسازید و Content-Length را برابر طول بدنه قرار دهید، سپس با sendall ارسال کنید. در نهایت اتصال را ببندید تا منابع مدیریت شوند و برای تست از curl یا مرورگر استفاده کنید و مطمئن شوید همه داده‌ها به بایت منتقل می‌شوند.

گزارش

1 پاسخ

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

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