انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: Nicolas1390 در 03 تیر 1391، 01:02 بظ
-
سلام
می خوام روی اوبونتو یک برنامه سرور بنویسم که پورتی را باز کنه و اطلاعات را با کلاینت رد و بدل کنه ...
توی ویندوز مشکلی ندارم ، اما توی لینوکس نمیدونم باید چکار کنم !
باید از صفر برنامه را بنویسم که پورت را باز کنه و بقیه کار ها یا نه ؟ آخه توی یک مقاله نوشته بود که از xinetd باید استفاده کرد
لطفا راهنمایی کنید که باید برنامه را کامل بنویسم که پورت را باز کنه یا چیزی شبیه xinetd هست که باید استفاده کنم ؟ تا جایی که خوندم این xinetd میاد درخواست های هر پورت را به نرم افزار مربوطه انتقال میده و ...
مرسی
-
xinetd برای درخواست هایی کاربرد داره که مثلا روزی 2 تا دونه درخواست به اون درگاه میره . لاکن اگر مثلا ثانیه ای دو تا درخواست میخوای به اون درگاه بفرستی باید یک دمون برای اون برنامه بسازید .
-
مرسی
دمون ؟ همون سرویس هست ؟
یعنی من مثل ویندوز یک برنامه سرور را از صفر بنویسم که پورت را باز کنه و به پورت گوش بده و کلاینت ها را کانکت کنه و سند و رسیو کنه و ...
بعد بصورت دمون درش بیارم ؟
مرسی
-
تووی لاگ زنجان ، یه مقدمه ای از این موضوع گفته شده ، به نظرم ضرری نداره که یه نگاهی بهش بندازی خیلی روون نوشته شده
با فرمت PDF :
http://zanjanlug.org/projects/documents/pejman/socket-sendtoweb.pdf
با فرمت ODF :
http://zanjanlug.org/projects/documents/pejman/socket-sendtoweb.odt
-
مرسی
مقاله جالبی هست ، اما خود برنامه را تقریبا بصورت ساده نوشتم ، اما بیشتر دنبال این هستم که مثل سرویس های خود لینوکس باشه و خودکار اجرا بشه ، دیگه اینکه توی مالتی تیردینگ هم موندم ! برای امنیت نرم افزار هم نمیدونم باید چکار کنم که برنامه امن باشه و کسی نتونه با استفاده از این برنامه به سیستم دسترسی داشته باشه و ...
مرسی
-
این لینک ها رو ببین ، شاید به دردت خورد :
http://www.ibm.com/developerworks/linux/tutorials/l-sock/index.html
http://www.linuxhowtos.org/C_C++/socket.htm
http://www.thegeekstuff.com/2011/12/c-socket-programming/
http://www.tenouk.com/cnlinuxsockettutorials.html
http://www.ibm.com/developerworks/linux/library/l-sockpit/
-
برای امنیت باید ببینید چه سطح دسترسی نیاز دارید با توجه به همون کاربری که دمون رو اجرا میکنه مشخص خواهد شد .
مثلا آپاچی یک دمون داره که با کاربر ریشه اجرا میشه لاکن این دمون برای کارهای خود آپاچی هستش و هیچ کار به کاربر خدمات نمیده بلکه دمون هایی که با کاربر www-data اجرا میشن به کاربر خدمات میدن تا دسترسی با کاربر ریشه داده نشه
-
مرسی
در مورد دمون میشه بیشتر توضیح بدی یا لینکی برای مطالعه بدید ؟
من این لینک رو خوندم : http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html (http://www.netzmafia.de/skripten/unix/linux-daemon-howto.html)
اما بعد از اینکه این کار ها را انجام دادم و برنامه کامل شد ، باید چکار کنم که برنامه بصورت سرویس اجرا بشه ؟ مثل ویندوز که سرویس ها قبل از لاگین اجرا میشن و بقیه مزایای سرویس
برنامه هم فقط قراره یک پورت را باز کنه یک سری اطلاعات از کلاینت بگیره و توی mysql بنویسه .
مرسی
-
این به گمانم کمک کنه :
http://narcissisticme.com/2011/01/31/lets-write-a-linux-daemon-part-i/
==========================
بنده تا کنون با دمون ها کار نکرده ام لاکن به اینجا نگاهی بیندازید :
/etc/init.d/
-
برنامه تقریبا درست شد
یک برنامه که یک پورت را باز می کنه و منتظر کلاینت هست تا اطلاعات را با کلاینت رد و بدل کنه ...
حالا می خوام این برنامه بصورت سرویس اجرا بشه
یکم سرچ کردم اما یک daemon هست و یک service ! مثل اینکه این دو با هم فرق می کنن ! من باید دنبال سرویس باشم یا دمون ؟ اصلا فرق این دو در چی هست ؟
مرسی
-
http://bobpeers.com/linux/services
-
مرسی اما این لینک خود سرویس ها را توضیح داده که چجوری میشه توی لینوکس مدیریتشون کرد و بیشتر روی chkconfig داره بحث می کنه که اون هم توی اوبونتو نیست و معادلش فکر کنم update-rc.d هست ...
-
تقریبا یک دمون و سرویس نوشتم که استارت و استاپ و ری استارت داره و موقع بالا اومدن لینوکس قبل از لاگین هم اجرا میشه و عملا مثل بقیه سرویس های لینوکس هست ..
حالا یک سوال دیگه ! چجوری میشه دسترسی های این سرویس یا در اصل دسترسی های اون دمون را محدود کرد ؟! مثلا به فلان فایل دسترسی نداشته باشه ، به بعضی از دستورات سیستمی دسترسی نداشته باشه و ..
مرسی