سلام دوست عزیز😃👋
به مسابقه «مسابقه استخدامی ارتباطات سینا» خوش آمدی!
لینکهای مفید برای شرکت در مسابقه:
هرگونه ارتباط با سایر شرکتکنندگان و یا استفاده از ابزارهای تولید کد، مثل chatGPT و... در مسابقات کوئرا ممنوع است و بعد از شناسایی از لیست شرکتکنندگان مسابقه حذف میشوید.
سوال اول تا چهارم جنبه سنجش مهارت حل مسئله را دارد. این سوالات را میتوانید با هر زبان برنامهنویسی که سیستم داوری کوئرا پشتیبانی میکند، حل کنید (اما حل سوالات با زبان C یا ++C برای جذب اولویت دارد).
سوال پنجم مربوط به Socket Programming در زبان C است و فقط باید به این زبان حل شود.
در طول مسابقه، میتوانید سؤالات خود را از قسمت «سوال بپرسید» مطرح کنید.
موفق باشید 😉✌
در این پروژه، باید یک سامانه نظرسنجی آنلاین برای بازیهای شهرآورد طراحی کنید که از طریق سوکتها، ارتباط بین یک سرور و چندین کلاینت را مدیریت کند. هر کلاینت باید بتواند به سرور متصل شده و به یک گزینه رأی دهد. پس از پایان رأیگیری، سرور باید نتایج را جمعآوری و به کلاینتها اعلام کند.
پروژهی اولیه را میتوانید از این لینک دانلود کنید. ساختار این فایل به صورت زیر است:
بعد از اجرا کردن دستورهای زیر به ترتیب server
و client
راهاندازی میشوند.
<port>
تنظیم شود که مقدار آن بهصورت آرگمان ورودی داده میشود.Socket Error
را چاپ کند.Bind Error
را چاپ کند.Ready To Get Votes...
را به صورت استاندارد چاپ کند.پس از اتصال هر کلاینت، سرور باید متن و گزینههای نظرسنجی را به هر کلاینت ارسال کند و از آنها درخواست کند که یک عدد (نمایانگر گزینه) را به عنوان رای انتخاب کنند. متن پیام نظرسنجی باید عبارت زیر باشد:
سرور پس از دریافت رأی از هر کلاینت، باید رأی را ذخیره کرده و بلافاصله پیام We Got Your Vote.
را برای تأیید رأی به کلاینت ارسال کند. در صورتی که رأی کاربر برابر 1
یا 2
نیست. بلافاصله عبارت Invalid Vote.
را باید به کلاینت ارسال کند.
سرور پس از دریافت هر رأی از از کلاینتها، نتیجهی رایگیری را بهصورت زیر چاپ کند.
<port>
بتواند به سرور متصل شود و گزینههای رأیگیری را دریافت کند.send
و recv
برای ارسال و دریافت دادهها استفاده شود.