کی گفته من اول از سوکت استفاده کرده بودم؟
در روش اول چون سیستم فایل بین تمام کلاینت ها مشترک بود از همون سیستم فایل برای ارتباط استفاده کرده بودم. اینطوری یکسری دنگ و فنگ های شبکه و ناپایداری ها و مسائل فنی هم بنظرم کاهش پیدا میکرد و نوشتن برنامه هم ساده تر و سریعتر و راحت تر میشد. فکر کردم از نظر پرفورمنس هم منابع کمتری از سیستم مصرف میکنه و کاهش سرعت حداقلی است.
الان هم برنامه روی لوکال با همون سیستم فایل کار میکنه و فقط یک بخش اینترنت که ارتباط از طریق HTTP انجام میده به برنامه اضافه شده.
البته این بخش جدید خودش خیلی کار برد و تقریبا نصف برنامه از نو نوشته شد، البته اگر مسائل امنیتی و رمزنگاری رو هم بهش اضافه کنیم میشه گفت حتی بیشتر، چون بهرحال اطلاعات وقتی بخواد از شبکهء داخلی خارج بشه و توی اینترنت بره مسائل امنیتی باید رعایت بشن.
خب SSL همینطور الکی و ساده هم نیست و روی هر هاستی نمیشه بسادگی راه انداخت. درحالیکه برنامهء من میتونه با هاستهای اشتراکی ارزان و بدون نیاز به هیچ کاری و تهیه و نصب و راه اندازی SSL و این حرفها کار کنه. اصولا نیازی به SSL نداره براش هیچ فرقی نمیکنه چون امنیت کامل داره خودش و از روش رمزنگاری مستقلی استفاده میکنه. همین SSL که میگید خودش اینقدر کامل نیست، مثلا در SSL شما به یک CA اعتماد میکنید (مراجعی که گواهینامهء دیجیتال رو ازشون تهیه میکنید)، البته از self signed certificate هم میشه استفاده کرد، که این مراجع خودشون یک نقطهء مبهم و ضعف احتمالی هستن، دوما SSL امنیت داده ها رو فقط در مسیر تامین میکنه و روی خود سرور امنیتی رو تامین نمیکنه، ولی برنامهء من چون از رمزنگاری P2P استفاده میکنه و سرور فقط نقش واسطه رو داره، و پروتکلش طوری طراحی شده که به سرور هیچگونه اعتمادی نشده، حتی اگر سمت سرور بصورت کامل دست نفوذگر بیفته عملا نمیتونه هیچ کاری بکنه (البته طبیعتا میتونه برنامه رو از کار بندازه، ولی نمیتونه هیچ اطلاعاتی رو بخونه یا جعل کنه و عملی رو در سمت کلاینت ها موجب بشه).پروتکلهای SSL/TSL استاندارد برای امن کردن یک ارتباط تو شبکه غیر ایمن ساخت شده اند کسی خودش پروتکل ابداع نمیکنه مگر اینکه واقعا دانش ودلیل خوبی داشته باشه, دوم اینکه کسی که هنوز چیزی ارائه نداده نمیتونه ادعا کنه که برنامه من کاملا امن هست! حداقل کاری که میتونی کنی اینه که یک گراف از روال ارتباط بین سرور و کلاینت بذاری
به حرف بله آسونه. ادعا کردن که کاری نداره!پس پروژه سری و فوق امنیتی بوده! کسی که ادعا میکنه برنامه امن هست چرا باید یه برنامه ریموت لاگ, ریبوت..، که ساختنش چند روز زمان میبره رو مخفی نگه داره؟
ولی برنامه تا برنامه جزییاتش و درونش و امنیتش هست که زمین تا آسمون میتونه متفاوت باشه.
ضمنا هرکاری و محیطی ممکنه یکسری امکانات و جزییات خاص خودش رو بطلبه یا براش مفید باشه که در برنامه های دیگه پیدا نشه.
ضمنا من مخفی کردم در درجهء اول نه بخاطر اینکه بگم خیلی خفنه، بلکه بخاطر اینکه نمیخوام یه مشت جوجه دوزاری ازش برای کارهای غیراخلاقی استفاده کنن. بعدم قرار نیست آدم هرچی درست میکنه مفتی در اختیار دیگران بذاره. گرچه من خودم کدها و برنامه های متعددی رو قبلا بصورت بازمتن منتشر کردم که کارهای خاص و پیشرفته و مفیدی هم هستن، ولی متاسفانه یه مشت آدم بیشعور دوزاری که خودشون یک سوم من سواد ندارن فقط میان میگن تو سواد نداری و کار خاصی انجام ندادی و این حرفا! البته در بحثهای اخیر معلوم شد که کی سواد داره و کی نداره! وقتی میبینم بقیه چقدر آدمهای بیشعور و بی لیاقتی هستن، دلم نمیخواد برنامه هام رو مفتی در اختیار دیگران قرار بدم (اگر میتونستم برای خارجی ها منتشر میکردم ولی هرگز در اختیار این ملت بیشعور خودمون نمیذاشتم، چون من خودم مدیون علم و کدها و دستاوردهای خارجی ها هستم که بصورت بازمتن منتشر کردن در اختیار همه گذاشتن).