با استفاده از پایتون یک سرور 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 یا مرورگر استفاده کنید؛ توجه کنید دادهها به بایت تبدیل شوند و پس از پاسخ اتصال را به درستی ببندید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای راهاندازی پایدار، قبل از bind گزینه SO_REUSEADDR را فعال کنید تا در راهاندازی مجدد با خطا مواجه نشوید. درخواست HTTP را میتوانید تا پایان خطهای CRLF و رسیدن به \r\n\r\n بخوانید تا headerها کامل شوند و بدنه جدا گردد. پاسخ HTTP را با خط وضعیت، headers و یک خط خالی قبل از بدنه بسازید و Content-Length را برابر طول بدنه قرار دهید، سپس با sendall ارسال کنید. در نهایت اتصال را ببندید تا منابع مدیریت شوند و برای تست از curl یا مرورگر استفاده کنید و مطمئن شوید همه دادهها به بایت منتقل میشوند.
گزارش