لطفا وارد شوید یا ثبت‌نام کنید تا به انجمن‌ها دسترسی کامل داشته باشید.



 
امتياز موضوع :
  • 0 رأي - معدل امتيازات : 0
  • 1
  • 2
  • 3
  • 4
  • 5
socket programming
2012-06-23, 12:02 PM,
ارسال : #1
socket programming
سلام
می خوام روی اوبونتو یک برنامه سرور بنویسم که پورتی را باز کنه و اطلاعات را با کلاینت رد و بدل کنه ...
توی ویندوز مشکلی ندارم ، اما توی لینوکس نمیدونم باید چکار کنم !
باید از صفر برنامه را بنویسم که پورت را باز کنه و بقیه کار ها یا نه ؟ آخه توی یک مقاله نوشته بود که از xinetd باید استفاده کرد

لطفا راهنمایی کنید که باید برنامه را کامل بنویسم که پورت را باز کنه یا چیزی شبیه xinetd هست که باید استفاده کنم ؟ تا جایی که خوندم این xinetd میاد درخواست های هر پورت را به نرم افزار مربوطه انتقال میده و ...
مرسی
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2012-06-23, 04:44 PM,
ارسال : #2
Re: socket programming
کار xinetd اینه که سرور شما همیشه اجرا نباشه و تنها وقتی یک برنامه‌ای از اون پورت می‌خواد استفاده کنه برنامه سرور رو اجرا بکنه. (برای مصرف کمتر حافظه و سرعت بیشتر کلی سیستم).
راه درست اینه که برنامه رو مستقل بنویسید، بهترین راهنمایی که من برای C دیدم اینه: لینک
اگر هم بخواید با xinetd بنویسید، این رو بخونید: لینک


اکنون در ubuntu.ir با نام کاربری nixoeen فعال هستم.
وب‌سایت شخصی من
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2012-06-23, 04:50 PM,
ارسال : #3
Re: socket programming
مرسی
پس باید خودم یک برنامه از صفر بنویسم
لینکی که برای C دادید را نگاه نکردم هنوز اما چون خودم قرار بود با C بنویسم یکم درموردش سرچ کردم و یک برنامه هم نوشتم ، فقط نمیدونم که چجوری این برنامه را دمون کنم ؟! بصورت سرویس بنویسمش که قبل از لاگین کردن هم اجرا بشه و همیشه اجرا بشه و دیگر مزایای سرویس ...
سوال دیگه اینکه الان برنامه من مالتی تیرد نیست ، یعنی در هر زمان فقط یک کلاینت میتونه به سرور وصل بشه ، من باید برنامه را بصورت مالتی تیرد بنویسم یا نه وقتی برنامه یک دمون بشه این مشکل حل میشه ؟

مرسی
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2012-06-23, 05:38 PM,
ارسال : #4
Re: socket programming
توی Debian میتونید از start-stop-daemon استفاده کنید. تنها کافیه اون برنامه در Background اجرا بشه.
برای رسیدگی به چندین کاربر روش‌های مختلفی از جمله Multi Threading یا Fork وجود داره. پیشنهاد می‌کنم این مقاله رو در مورد epoll بخونید: لینک


اکنون در ubuntu.ir با نام کاربری nixoeen فعال هستم.
وب‌سایت شخصی من
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2012-06-23, 05:52 PM,
ارسال : #5
Re: socket programming
از اوبونتو سرور استفاده می کنم
لینکی که دادید باز نمیشه
پس برنامه من باید کامل باشه و مولتی تیرد هم باشه بعد بصورت دمون دربیارمش ؟
برای دمون این مقاله را خوندم :
http://www.netzmafia.de/skripten/unix/li...howto.html
باید بر اساس همین مقاله پیش برم ؟
مرسی
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2012-06-23, 07:46 PM,
ارسال : #6
Re: socket programming
سایت باز شد مشکل از من بود
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2012-06-24, 11:32 AM,
ارسال : #7
Re: socket programming
برنامه تقریبا درست شد
یک برنامه که یک پورت را باز می کنه و منتظر کلاینت هست تا اطلاعات را با کلاینت رد و بدل کنه ...
حالا می خوام این برنامه بصورت سرویس اجرا بشه
یکم سرچ کردم اما یک daemon هست و یک service ! مثل اینکه این دو با هم فرق می کنن ! من باید دنبال سرویس باشم یا دمون ؟ اصلا فرق این دو در چی هست ؟
مرسی
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2012-06-24, 05:07 PM,
ارسال : #8
Re: socket programming
هر برنامه‌ای که در Background اجرا بشه Daemon نام داره.
برای اون هم باید از start-stop-daemon استفاده کنید.


اکنون در ubuntu.ir با نام کاربری nixoeen فعال هستم.
وب‌سایت شخصی من
مشاهده تارنمای کاربر جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2012-06-24, 05:26 PM,
ارسال : #9
Re: socket programming
مرسی
بر اساس همون لینکی که گفتم برنامه را بصورت Daemon درآوردم با استفاده از fork...
دمون را چجوری به سرویس تبدیل کنم ؟ start-stop-daemon وقتی برنامه اجرا نیست که نمیتونه برنامه را اجرا کنه ! موقع stop کردن چه بلایی سر برنامه میاد ؟ کلا برنامه را KILL میکنه ؟ نمیشه از داخل برنامه تشخیص بدم و مثلا فایل هایی که باز کردم رو ببندم و لاگ بندازم و ... ؟؟

واسه اینکه دمون خودکار با بوت شدن سیستم قبل از لاگین کردن مثل سرویس اجرا بشه باید چکار کرد ؟

مرسی
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ
2012-06-25, 07:40 AM,
ارسال : #10
Re: socket programming
تقریبا یک دمون و سرویس نوشتم که استارت و استاپ و ری استارت داره و موقع بالا اومدن لینوکس قبل از لاگین هم اجرا میشه و عملا مثل بقیه سرویس های لینوکس هست ..
حالا یک سوال دیگه ! چجوری میشه دسترسی های این سرویس یا در اصل دسترسی های اون دمون را محدود کرد ؟! مثلا به فلان فایل دسترسی نداشته باشه ، به بعضی از دستورات سیستمی دسترسی نداشته باشه و ..
مرسی
جستجوی تمامی ارسال های کاربر
نقل قول این ارسال در یک پاسخ


رفتن به انجمن :


کاربران در حال مشاهده موضوع : 1 مهمان