مشاهده نسخه کامل
: نمایش پکت های دریافتی tcp
با سلام خدمت دوستان
فیلد تخصصی بنده شبکه یا نرم افزار نیست و تنها اطلاعات ابتدایی در این مورد دارم، پس اگه جایی رو اشتباه میگم به بزرگی خودتون ببخشید و اشتباهمو تصحیح کنید
-----
بنده یک ماژول مخابراتی دارم که قابلیت ارسال اطلاعات از طریق gprs را بصورت tcp / http داره ، حالا نیاز دارم روی لپ تاپم نرم افزاری رو داشته باشم تا به وسیله اون بتونم دیتاهای ارسالی ماژول رو نمایش بدهم ، از اون جایی که سیستم من ip استاتیک نداره بنا براین اگه در هر بار اتصال به نت و آی پی گرفتن مودم این آیپی رو بر روی ماژول ست کنم، آیا دستیابی به این هدف ممکنه ؟
چه نرم افزاری قابلیت دریافت و نمایش این دیتاها رو داره ؟
2-اگه یک همچین چیزی تا بحال خلق نشده ، تا جایی که میدونم باید با برنامه نویسی سوکت این کارو انجام بدم ، و از اون جایی که اطلاعات برنامه نویسی بنده زنگ زده ، میشه یه سورس فوق ساده در حد تنها دریافت و نمایش دیتا با کامنت های قابل فهم رو در اختیار بنده بزارید ؟
بنده با Cpp آشنایی دارم (نه تحت کامپیوتر) ، پیشنهاد شما دات نته یا کیو تی ؟ کارایی و سرعت و دقت اهمیتی نداره ،تنها سادگی و قابل فهم بودن و صرفه جویی در زمان برای نوشتن مهمه
بی نهایت ممنون:n01:
سلام
نقاط مجهولی در سوال شما وجود دارد...
و احتمال انجام خواسته تان با راه حل های جایگزین و ساده و مطمئن تر بسیار است...
پس اول به دقت به پنج سوال زیر جواب دهید
بنده یک ماژول مخابراتی دارم که قابلیت ارسال اطلاعات از طریق gprs را بصورت tcp / http داره
1) یعنی از WebService برای ارسال استفاده میکنید یا مستقیم به مودم سخت افزاری متصل میشوید؟
2) و مشتری تان با http به سرور متصل شده و پیامک را ارسال میکند؟
3) برنامه سرور را که خودتان ننوشته اید، به سورس آن دسترسی دارید؟
4) این برنامه به چه زبانی است؟
... دیتاهای ارسالی ماژول رو نمایش بدهم ...
5) یعنی فقط جنبه نظارتی و کنترلی دارد؟
در نهایت کمی بیشتر در مورد چیدمان سخت افزاری و نرم افزاری و نیازتان توضیح دهید.
سلام
نقاط مجهولی در سوال شما وجود دارد...
و احتمال انجام خواسته تان با راه حل های جایگزین و ساده و مطمئن تر بسیار است...
پس اول به دقت به پنج سوال زیر جواب دهید
1) یعنی از WebService برای ارسال استفاده میکنید یا مستقیم به مودم سخت افزاری متصل میشوید؟
2) و مشتری تان با http به سرور متصل شده و پیامک را ارسال میکند؟
3) برنامه سرور را که خودتان ننوشته اید، به سورس آن دسترسی دارید؟
4) این برنامه به چه زبانی است؟
5) یعنی فقط جنبه نظارتی و کنترلی دارد؟
در نهایت کمی بیشتر در مورد چیدمان سخت افزاری و نرم افزاری و نیازتان توضیح دهید.
سلام علی آقا احتمالا شما بنده رو خاطرتون نیست،ولی بنده از حدود دو سه سال پیش که ازتون تو نوشتن برنامه led کمک خواستم(همونی که تو سایت خودتون هم قرارش دادین) تا العان روز به روز داره ارادتم بهتون زیاد میشه : )
خب بزارید بیشتر توضیح بدم :
ما یک ماژول مخابراتی sim900 داریم ، که قابلیت های بسیاری داره که ما فعلا کاری بهش نداریم،هدف ما اینه که ماژول به عنوان کلاینت ، داده هایی که نیاز به پردازش و ثبت دارند رو تحت gprs برای رایانه که به عنوان سرور شناخته میشه ارسال کنه.ماژول از ارسال تحت http و همچنین Tcp پشتیبانی میکنه و در این سمت یک میکروکنترلر arm وظیفه کنترل و مدیریت و ارتباط با ماژول را بر عهده داره
ما میایم این پروژه رو به چند فاز تقسیم میکنیم ، توی فاز یک صرفا هدف تست و راه اندازی اولیه دستگاه ،ایجاد اتصال بین سرور و کلاینت و ارسال دیتا و اطمینان از دریافت اون در سمت سرور (نمایش ) هستش
با توجه به اپلیکیشن نوت های شرکت سازنده و سمپل ها تو سمت کلاینت مشکل خاصی نیست و ماژول به خوبی راه اندازی شده ،ولی تو سمت سرور مشکلات بحرانی بسیاری وجود داره
1-بیام از سیستم خودم به عنوان سرور استفاده کنم (مطلوب ترین راه حل):
با توجه به اینکه آی پی استاتیک ندارم اگه تو هر بار اتصال که مودمم آی پی گرفت ؟ اگه این آیپی رو برای ماژول تعربف کنم امکان اتصال هست و میتونم دیتا رو تو سیستم مشاهده کنم ؟
با پرس و جو تو بقیه فروم ها برنامه وایر شارک رو بهم معرفی کردن که با این راه حل بسیار هماهنگه(اگه از عهده وظایف بر بیاد )
2- از یه سرور رایگان استفاده کنم و کدها رو توش بریزم:
--------------------
در صورتی که برنامه خاصی برای این نیاز پیدا نشه باید،از برنامه نویسی سوکت استفاده بشه ،و اتفاقا بنده تاپیک فوق العاده علی آقا رو تو این زمینه خوندم ، ولی خب همونطور گه قبلا گفتم تجربیات زیادی با برنامه نویسی رایانه ندارم و برای این منظور باید ابتدا با دات نت آشنا بشم و.... که زمان رو افزایش میده
و این سوال هم هست که این برنامه آیا روی سیستم خودم جواب میده ؟اگر آری آیا باید آپاچی نصب کنم ؟ اگر چواب نمیده آیا سرورهای رایگان اجازه اجرای برنامه های نوشته شده با دات نت رو میدن یا نه؟
عملکرد نهایی قطعا روی سرور تجاری خواهد بود ولی به دلیل هزینه های بالاتر و انعطاف و راحتی بیشتر راه حل اول ،سعی میشه فعلا از روشهای یک و دو استفاده بشه
یک دنیا ممنون:n01:
من هم دقیقا متوجه نشدم که چه الگویی را می خواهید استفاده کنید.
1- می خواهید دیتاهایی را به یک سایت بفرستید که همیشه آنلاین است؟
2- آیا می خواهید یک نرم افزار مانیتورینگ جداگانه داشته باشید؟
در صورتیکه حالت اول باشد از نظر من شما چند راه حل دارید:
1- اطلاعات را درون یک فایل با FTP در هاست سایت ذخیره کنید و در هنگام بارگذاری صفحه سایت آن را load کنید.
2- به دیتابیس سایتاتان متصل شوید و اطلاعات را در آن ذخیره کنید.
3- یکسری دیتا را به یک صفحه ی سایتتان POST کنید و آن صفحه اطلاعات را در دیتابیس ذخیره کند.
با توجه به پیچیدگی دو راه اول (با توجه به عدم پشتیبانی از FTP و SQL در اکثر میکروها) راه سوم ساده تر است. یک سوکت به پورت 80 و پیاده سازی روند POST. سپس نوشتن یک کد در وب که دیتای POST شده ی شما در جایی ذخیره و یا نمایش دهد.
در حالت دوم که یک سوکت می زنید و دیتا را جابه جا می کنید.شما تنها مشکلتان در بحث IP است. لازم نیست هر دو طرف IP استاتیک باشند. یک طرف کافی است. اگر بازهم امکان آن نبود. بهترین راه استفاده از DDNS است.استفاده از DDNS به این معناست که آدرس ماژول توسط ماژول (در بازه های زمانی مشخص) در یک سرویس جهانی نظیر OpenDNS ذخیره می شود آنگاه این امکان وجود دارد که نرم افزار شما از OpenDNS استفاده کرده و آدرس فعلی ماژول را بدست آورد اینگونه دیگر نیاز به آدرس استاتیک نیست. DDNS یک قالب است که کدنویسی آن هم در قالب POST است. اطلاعات بیشتر: اینجا ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])، اینجا ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]).
البته ممکن است بعضی سرویس ها در قالب سوکت و ارسال پکت های خاص هم باشند...
موفق باشید.
سلام
بالاخره با کلی فسفر سوزی از بین مجموع اطلاعات و اشاره به led و arm و... گمانم موفق شدم کشف کنم میخواهید چه کنید!
==============
دوشیوه مرسوم برای ارسال پیامک وجود دارد
اول) تهیه سیم کارت و مودم GPRS
این روش برای حجم انبوه ارسال و دریافت مناسب نیست ولی بهرحال اگر قرار باشد نرم افزار سرور کلاینتی کار کند و به تعدادی از کلاینت ها همزمان پاسخ دهد، میتوانید دیتابیسی به جهت ایجاد صف و هم نارت و بایگانی در سرور ایجاد کنید و همه فرامین ارسال پیامک را در آن بایگانی کنید و در کنار آن ریسمانی داشته باشید که با مودم در ارتباط بوده و نوبت به نوبت پیامک ها را از دیتابیس خوانده و ارسال کند.
نمودار اطلاعات:
کلاینت -> [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] -> سرور و دیتابیس شما -> مودم
(اتفاقاً دوستی را میشناسم که با تاحدودی شبیه همین رویکرد در حال تهیه یک نرم افزار برای مصارف شخصی و شرکت خودشان است)
دوم) ارسال به کمک WebService های متصل به سوییچرهای اپراتورها
این روش برای حجم انبوه ارسال و دریافت مناسب است، در این روش شما میتوانید صدها پیامک را در یک لحه و با امینان ارسال بسیار بالا ارسال کنید، در این روش باید اشتراک و یک خط از یکی از شرکت های سرشماره 1000 , 2000 , 3000 , 50001 , 50002 , 50004 و... اجاره کنید.
در این روش هم خیلی راحت میتوانید یک سرور راه اندازی کنید و به مشتریان/کلاینت خود Api/WebService و یا پنلی بدهید که از آن طریق اطلاعات را به سرور شما بدهند و سرور شما پس از ثبت آمار و تاریخچه و... در دیتابیس، اطلاعات را تحویل سرور شرکت اصلی بدهد.
نمودار اطلاعات:
کلاینت -> [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] -> سرور و دیتابیس شما -> سرور WebService شرکت تامین کننده
==============
چیزی که تاحدودی از توضیحات شما متوجه شدم یا امیدوارم درست متوجه شده باشم، آن است که شما نیاز به روش اول دارید
چون مودم شما یک مدار الکترونیکی با پشتیبانی TCP است (اگر درست متوجه شده باشم؟) شما به همچین شکلی فکر میکنید؟
کلاینت ها -> Tcp -> برد الکترونیکی شما
برای همین هم مدام به این IP-Static فکر میکنید! شما میخواهید رایانه خودتان را سرور کنید و بردالکترونیکی تان را به آن متصل کنید؟!
اگر درست متوجه شده باشم...
باید مجدد تاکید کنم، نهایت و بهترین حالت و شرایط ارسال سخت افزاری با مودم/بردالکترونیکی/بردموبایل و... بازدهی مناسبی، مخصوصاً در حجم انبوه ندارد، از جنبه تحقیق و پروزه شخصی و تجربه و... بد نیست ولی ارزش عملی و اقتصادی وقتی را که میخواهید بگذارید ندارد!
شما با مبالغ کمتر و در حجم وسیع تر میتوانید تجارت کوچکی را با روش دوم به راه بیاندازید...! نرم افزارهای آماده هم در این شیوه گمانم زیادتر باشند... سایت های بسیار زیادی الآن این کار را انجام میدهند، همه که برنامه نویس نیستند!
اگر همچنان مصر به ادامه کار و تحقیق و کسب دانش و... در راه خودتان هستید باید از شیوه اول استفاده کنید...
کلاینت -> [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] -> سرورشما با IPStatic و دیتابیس شما -> مودم/برد الکترونیکی
در این شیوه باید به سرور دسترسی داشته باشید تا مودم یا بردالکترونیکی تان را به آن متصل کنید، به جای هزینه و اجاره یک سرور اینترنتی و... با مبلغ کمی یک IPStatic از شرکت اینترنتی تان تهیه کنید (فقط گمانم مخابرات IPStatic نمیدهد)
اگر هم همچنان با تهیه IPStatic مشکل دارید میتوانید یک سرور اینترنتی (فضای اشتراکی وب/سرور مجازی و...) تهیه کنید و برنامه ای کوچک برای دریافت و بایگانی اطلاعات در دیتابیس بنویسید، سپس سرور خانگی شما که فاقد IPStatic و مجهز به مودم است، خود به این دیتابیس اینترنتی متصل شده و به نوبت موارد ثبت شده را ارسال کند، همه اینها بدون نیاز به دانش Socket/TcpIp و... قابل انجام است و با روال های عادی کدهای #C قابل انجام است.
هر کسی که چهارخط #C عادی بلد باشد میتواند با یک برنامه ASP.Net در سرور اینترنتی و یک برنامه WinForm (و چه بهتر WinService) در رایانه مجهز به مودم این کار را بدون درگیری مستقیم با Socket/TcpIp و... انجام دهد.
در آخر هم چون دیتابیس دارید میتوانید امار و اطلاعات بسیار کامل و دقیقی از مشتری ها و تعداد پیامک های ارسالی و... داشته باشید و حتی طبق ان اجازه ارسال بدهید یا تا وقتی فرد اکانت اش را شارژ مالی نکرده اجازه ارسال ندهید ...
==============
حالا چه کمکی میتوانم به شما بکنم؟
اگر بخواهید #C یاد گرفته و خودتان کارتان را انجام دهید که کمی صبر و حوصله بیشتر و مذاکرات بیشتر لازم دارد.
اگر بخواهید بدهید کسی برایتان انجام دهد، کمکی که میتوانم بکنم آن است که اگر فرد پیدا کردید متوجه نشد چه میخواهید و چه باید بکند و... میتوانم متنی به شما بدهم تا به برنامه نویس تان بدهید تا متوجه شود چه چیزی باید برایتان بسازد.
موفق باشید.
من هم دقیقا متوجه نشدم که چه الگویی را می خواهید استفاده کنید.
1- می خواهید دیتاهایی را به یک سایت بفرستید که همیشه آنلاین است؟
2- آیا می خواهید یک نرم افزار مانیتورینگ جداگانه داشته باشید؟
در صورتیکه حالت اول باشد از نظر من شما چند راه حل دارید:
1- اطلاعات را درون یک فایل با FTP در هاست سایت ذخیره کنید و در هنگام بارگذاری صفحه سایت آن را load کنید.
2- به دیتابیس سایتاتان متصل شوید و اطلاعات را در آن ذخیره کنید.
3- یکسری دیتا را به یک صفحه ی سایتتان POST کنید و آن صفحه اطلاعات را در دیتابیس ذخیره کند.
با توجه به پیچیدگی دو راه اول (با توجه به عدم پشتیبانی از FTP و SQL در اکثر میکروها) راه سوم ساده تر است. یک سوکت به پورت 80 و پیاده سازی روند POST. سپس نوشتن یک کد در وب که دیتای POST شده ی شما در جایی ذخیره و یا نمایش دهد.
در حالت دوم که یک سوکت می زنید و دیتا را جابه جا می کنید.شما تنها مشکلتان در بحث IP است. لازم نیست هر دو طرف IP استاتیک باشند. یک طرف کافی است. اگر بازهم امکان آن نبود. بهترین راه استفاده از DDNS است.استفاده از DDNS به این معناست که آدرس ماژول توسط ماژول (در بازه های زمانی مشخص) در یک سرویس جهانی نظیر OpenDNS ذخیره می شود آنگاه این امکان وجود دارد که نرم افزار شما از OpenDNS استفاده کرده و آدرس فعلی ماژول را بدست آورد اینگونه دیگر نیاز به آدرس استاتیک نیست. DDNS یک قالب است که کدنویسی آن هم در قالب POST است. اطلاعات بیشتر: اینجا ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])، اینجا ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]).
البته ممکن است بعضی سرویس ها در قالب سوکت و ارسال پکت های خاص هم باشند...
موفق باشید.
سلام
بالاخره با کلی فسفر سوزی از بین مجموع اطلاعات و اشاره به led و arm و... گمانم موفق شدم کشف کنم میخواهید چه کنید!
==============
دوشیوه مرسوم برای ارسال پیامک وجود دارد
اول) تهیه سیم کارت و مودم GPRS
این روش برای حجم انبوه ارسال و دریافت مناسب نیست ولی بهرحال اگر قرار باشد نرم افزار سرور کلاینتی کار کند و به تعدادی از کلاینت ها همزمان پاسخ دهد، میتوانید دیتابیسی به جهت ایجاد صف و هم نارت و بایگانی در سرور ایجاد کنید و همه فرامین ارسال پیامک را در آن بایگانی کنید و در کنار آن ریسمانی داشته باشید که با مودم در ارتباط بوده و نوبت به نوبت پیامک ها را از دیتابیس خوانده و ارسال کند.
نمودار اطلاعات:
کلاینت -> [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] -> سرور و دیتابیس شما -> مودم
(اتفاقاً دوستی را میشناسم که با تاحدودی شبیه همین رویکرد در حال تهیه یک نرم افزار برای مصارف شخصی و شرکت خودشان است)
دوم) ارسال به کمک WebService های متصل به سوییچرهای اپراتورها
این روش برای حجم انبوه ارسال و دریافت مناسب است، در این روش شما میتوانید صدها پیامک را در یک لحه و با امینان ارسال بسیار بالا ارسال کنید، در این روش باید اشتراک و یک خط از یکی از شرکت های سرشماره 1000 , 2000 , 3000 , 50001 , 50002 , 50004 و... اجاره کنید.
در این روش هم خیلی راحت میتوانید یک سرور راه اندازی کنید و به مشتریان/کلاینت خود Api/WebService و یا پنلی بدهید که از آن طریق اطلاعات را به سرور شما بدهند و سرور شما پس از ثبت آمار و تاریخچه و... در دیتابیس، اطلاعات را تحویل سرور شرکت اصلی بدهد.
نمودار اطلاعات:
کلاینت -> [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] -> سرور و دیتابیس شما -> سرور WebService شرکت تامین کننده
==============
چیزی که تاحدودی از توضیحات شما متوجه شدم یا امیدوارم درست متوجه شده باشم، آن است که شما نیاز به روش اول دارید
چون مودم شما یک مدار الکترونیکی با پشتیبانی TCP است (اگر درست متوجه شده باشم؟) شما به همچین شکلی فکر میکنید؟
کلاینت ها -> Tcp -> برد الکترونیکی شما
برای همین هم مدام به این IP-Static فکر میکنید! شما میخواهید رایانه خودتان را سرور کنید و بردالکترونیکی تان را به آن متصل کنید؟!
اگر درست متوجه شده باشم...
باید مجدد تاکید کنم، نهایت و بهترین حالت و شرایط ارسال سخت افزاری با مودم/بردالکترونیکی/بردموبایل و... بازدهی مناسبی، مخصوصاً در حجم انبوه ندارد، از جنبه تحقیق و پروزه شخصی و تجربه و... بد نیست ولی ارزش عملی و اقتصادی وقتی را که میخواهید بگذارید ندارد!
شما با مبالغ کمتر و در حجم وسیع تر میتوانید تجارت کوچکی را با روش دوم به راه بیاندازید...! نرم افزارهای آماده هم در این شیوه گمانم زیادتر باشند... سایت های بسیار زیادی الآن این کار را انجام میدهند، همه که برنامه نویس نیستند!
اگر همچنان مصر به ادامه کار و تحقیق و کسب دانش و... در راه خودتان هستید باید از شیوه اول استفاده کنید...
کلاینت -> [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] -> سرورشما با IPStatic و دیتابیس شما -> مودم/برد الکترونیکی
در این شیوه باید به سرور دسترسی داشته باشید تا مودم یا بردالکترونیکی تان را به آن متصل کنید، به جای هزینه و اجاره یک سرور اینترنتی و... با مبلغ کمی یک IPStatic از شرکت اینترنتی تان تهیه کنید (فقط گمانم مخابرات IPStatic نمیدهد)
اگر هم همچنان با تهیه IPStatic مشکل دارید میتوانید یک سرور اینترنتی (فضای اشتراکی وب/سرور مجازی و...) تهیه کنید و برنامه ای کوچک برای دریافت و بایگانی اطلاعات در دیتابیس بنویسید، سپس سرور خانگی شما که فاقد IPStatic و مجهز به مودم است، خود به این دیتابیس اینترنتی متصل شده و به نوبت موارد ثبت شده را ارسال کند، همه اینها بدون نیاز به دانش Socket/TcpIp و... قابل انجام است و با روال های عادی کدهای #C قابل انجام است.
هر کسی که چهارخط #C عادی بلد باشد میتواند با یک برنامه ASP.Net در سرور اینترنتی و یک برنامه WinForm (و چه بهتر WinService) در رایانه مجهز به مودم این کار را بدون درگیری مستقیم با Socket/TcpIp و... انجام دهد.
در آخر هم چون دیتابیس دارید میتوانید امار و اطلاعات بسیار کامل و دقیقی از مشتری ها و تعداد پیامک های ارسالی و... داشته باشید و حتی طبق ان اجازه ارسال بدهید یا تا وقتی فرد اکانت اش را شارژ مالی نکرده اجازه ارسال ندهید ...
==============
حالا چه کمکی میتوانم به شما بکنم؟
اگر بخواهید #C یاد گرفته و خودتان کارتان را انجام دهید که کمی صبر و حوصله بیشتر و مذاکرات بیشتر لازم دارد.
اگر بخواهید بدهید کسی برایتان انجام دهد، کمکی که میتوانم بکنم آن است که اگر فرد پیدا کردید متوجه نشد چه میخواهید و چه باید بکند و... میتوانم متنی به شما بدهم تا به برنامه نویس تان بدهید تا متوجه شود چه چیزی باید برایتان بسازد.
موفق باشید.
در ابتدا بی نهایت ازتون ممنونم که وقت خودتون رو در اختیار من میزارید
جناب msba ی عزیز بانک اطلاعاتی شاید تو نسخه نهایی اضافه بشه ولی فعلا در این مرحله نیازی بهش نیست و ما هم در این تاپیک دنبالش نمیریم
در مورد ddns هم فک کنم میشه ماژول و سرور آیپیشونو با پیامک برا هم بفرستن که این روش ساده تریه ، فعلا بهش نمی پردازیم
علی آقای گرامی بنده مطلقا دنبال ارسال پیامک نیستم ، کلا بیایم فک کنیم اصلا این ماژول امکان ارسال پیامک نداره
هدف من به نوعی یک سخت افزار کوچکه که اطلاعاتی رو از محیط حمع اوری و اونا رو برای پردازش به سرور میفرسته ،البته در نمونه نهایی این یک سرور تجاری خواهد بود ولی من در این تاپیک نمیخوام بهش بپردازم تو این تاپیک فقط میخوام داده های ارسالی ماژولو مشاهده کنم و از ارسال اونا مطمین بشم همین و به فکرم رسید اگه تو سیستم خودم امکان دریافت داده ها باشه خیلی راحت تره
پس بدلیل قیمت ارزانتر و قابلیت های امنیتی بیشتر و انعطاف بالاتر gprs نسبت به پیامک انتخاب شده و هیچ پیامکی در کار نیست
یعنی :
اگر(برنامه ای که بتونه داده های ارسالی رو در لپ تاپ نمایش بده هست )آنگاه:
لطفا نام این برنامه رو به من بگین (آیا وایر شارک میوتنه؟ )
در غیر اینصورت اگر (چنین برنامه ای نیست )
لطفا بنده رو به سمت سمپل های مشابه و آموزشها (مشابه همون تاپیک برنامه نویسی سوکت ) برای نوشتن این برنامه تحت دات نت یا کیو تی راهنمایی کنید؟
اگر اهیچ کدام از شرایط بالا نشد آنگاه:
برای نوشتن این برنامه ها در سمت سرور بنده را راهنمایی کنید
-------------------------
واقعا موردی در این پروژه نیست که بنده بخوام مخفی کنم و هرگز هم از شما دوستان انتظار ندارم برنامه رو برام بنویسید ، هرچند در مرحله نوشتن نسخه تحاری از تجربیات شما برای پیدا کردن شرکت برنامه سازی مناسب راهنمایی خواهم گرفت
من تنها به دنبال نوشتن یک پیش نمایش اولیه از برنامه هستم
بی نهایت ممنون:n01:
سلام مجدد
در پست قبلی کلی ذوق کردم که متوجه شدم چه میخواهید ولی... :n02::n13:
متاسفانه همچنان درک درستی از نیاز شما ندارم که بتوانم پاسخ دیگری بدهم، فقط میتوانم بگویم شرمنده ام ...
بار دیگر همه مطالب شما را خواندم، کلیه سوالات و پیشنهادات تان و بخش های GPRS را حذف کردم! (بدلیل آنکه مربوط به بعد از درک نیاز میشود) تا برسم به متونی که گفته اید چه میخواهید، و بظاهر فقط به سه جمله زیر میتوان در فهم نیازتان اکتفاء کنم:
... نیاز دارم روی لپ تاپم نرم افزاری رو داشته باشم تا به وسیله اون بتونم دیتاهای ارسالی ماژول رو نمایش بدهم ...
... هدف من به نوعی یک سخت افزار کوچکه که اطلاعاتی رو از محیط حمع اوری و اونا رو برای پردازش به سرور میفرسته ...
... برنامه ای که بتونه داده های ارسالی رو در لپ تاپ نمایش بده هست ...
آیا شما فقط یک گیرنده TCP/IP میخواهید؟ اطلاعات را از یک پورت خاص دریافت و روی مانیتور نشان دهد؟ یکجور واکی تاکی نرم افزاری تحت TCP/IP؟
سلام مجدد
در پست قبلی کلی ذوق کردم که متوجه شدم چه میخواهید ولی... :n02::n13:
متاسفانه همچنان درک درستی از نیاز شما ندارم که بتوانم پاسخ دیگری بدهم، فقط میتوانم بگویم شرمنده ام ...
بار دیگر همه مطالب شما را خواندم، کلیه سوالات و پیشنهادات تان و بخش های GPRS را حذف کردم! (بدلیل آنکه مربوط به بعد از درک نیاز میشود) تا برسم به متونی که گفته اید چه میخواهید، و بظاهر فقط به سه جمله زیر میتوان در فهم نیازتان اکتفاء کنم:
آیا شما فقط یک گیرنده TCP/IP میخواهید؟ اطلاعات را از یک پورت خاص دریافت و روی مانیتور نشان دهد؟ یکجور واکی تاکی نرم افزاری تحت TCP/IP؟
سلام : )
مشکل از نحوه ی بیان منه که نمیتونم منظورمو کامل منتقل کنم ،لطفا هرجاشو که احساس میکنید گنگه عنوان کنید تا بیشتر توضیح بدم
ببینید بزارید یه مثال ملموس تر بزنم
مثال ما :
فرض کنید شما یه گلخونه دارید که پارامترهای دما ،رطوبت ، اکسیژن ، نور و ... نقاط مختلف اون باید نمونه برداری شده و ثبت شوند.
شما حالا میای یک سیستم نمونه بردار و ارسال کننده (شامل سنسورها ،میکروکنترلر و ماژول سخت افزاری برای ارسال داده ها تحت gprs ) رو در داخل گلخونه قرار میدی و یه سرور هم توس خونتون میزاری (یا یه سرور اجاره میکنید ) تا داده های دریافتی از میکروکنترلر و ماژول رو دریافت و نمایش بده
ماژول شما از دو روش زیر میتونه این اطلاعات رو ارسال کنه:
1- یک اتصال tcp با سرور ایجاد کنه ،خودشو به عنوان کلاینت معرفی و پکت های tcp رو برای سرور بفرسته ، در سمت دیگه هم سرور این داده ها رو دریافت و یه جوری به اپراتورش بفهمونه (مثلا با نمایش یک پیام یا نوشتن داده ها توی یک تکست باکسی چیزی ) که آقا میکروکنترلر داده ها رو برای من فرستاد پس یعنی سیستم سالمه و داده ها رو به درستی گرفته و برای من ارسال کرده است
2- ماژول تحت پروتوکول http و با استفاده از متدهای اون مثل get ,post و ... با سرور ارتباط برقرار کنه و داده ها رو برای سرور بفرسته، سرور هم با استفاده از متدهای خودش داده ها رو بگیره و نمایش بده برای اپراتور
-------------------
این کل پروسه ای است که قراره اتفاق بیفته، تنها موردی که هست من میخوام اگه ممکنه فعلا از لپ تاپ خودم به عنوان سرور استفاده کنم و اونو بعنوان سرور به میکروکنترلر و ماژول معرفی کنم، اگه نه که هیچی
----------------
ممنون :n16:
چند یادآوری شاید لازم باشد:
1-GPRS شبکه به شما نمی دهد. اینترنت به شما می دهد!
2-روی لپتاپی می توانید ارتباط بگیرید که در اینترنت باشد و مستقیما IP Valid داشته باشد نه اینکه IP روی مودم مثلا ADSL باشد.
نکات:
1- Wire shark نرم اقزار آنالیز بسته های شبکه است و در قالبی نیست که برای این کار مناسب باشد.
2- می توانید از نرم افزاری مانند TCP Socket Test استفاده کنید که پورت مد نظر شما را Listen می کند و یا به آدرسی خاصی متصل می شود. می توانید از اینجا ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) بگیرید. این روش تست بسیار ساده است.
3- در هنگام تست های اینگونه از وضعیت Firewall خود مطمئن شوید. شاید ارتباطتان را Block کند و Connect انجام نشود.
موفق باشید.
چند یادآوری شاید لازم باشد:
1-GPRS شبکه به شما نمی دهد. اینترنت به شما می دهد!
2-روی لپتاپی می توانید ارتباط بگیرید که در اینترنت باشد و مستقیما IP Valid داشته باشد نه اینکه IP روی مودم مثلا ADSL باشد.
نکات:
1- Wire shark نرم اقزار آنالیز بسته های شبکه است و در قالبی نیست که برای این کار مناسب باشد.
2- می توانید از نرم افزاری مانند TCP Socket Test استفاده کنید که پورت مد نظر شما را Listen می کند و یا به آدرسی خاصی متصل می شود. می توانید از اینجا ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) بگیرید. این روش تست بسیار ساده است.
3- در هنگام تست های اینگونه از وضعیت Firewall خود مطمئن شوید. شاید ارتباطتان را Block کند و Connect انجام نشود.
موفق باشید.
با تشکر از شما
پس با این وجود میایم مورد لپ تاپ رو از گزینه ها خارج و هدفمون رو بدین صورت آپدیت میکنیم
ما کلاینتی داریم که قابلیت اتصال و ارسال را با استفاده از پروتوکل http دارد،حال باید برنامه ای برای سمت سرور (جهت نصب در یک سرور رایگان ) نوشته شود که قابلیت دریافت و نمایش ساده ی داده های دریافتی از سمت کلاینت را داشته باشد.
خب حالا این برنامه ساده آیا باید با asp.net نوشته شود ؟ اگر خیر گزینه ی دیگر چیست ؟(php رو بیخیال کار ما نیس)
آیا علاوه بر فایل نوشته شده باید صفحه html ای طراحی شود که با فایل asp لینک شده و برنامه asp داده های دریافتی را به صفحه Html جهت نمایش ارسال کند و صفحه html اطلاعات را نمایش دهد؟
اگر جواب سوالات بالا آری است لطفا منابع مورد نیاز برای این هدف مثل،توابع کلاسها و آموزش استفاده یشان را در اختیار بنده بزارید
ممنون:n16:
آیا علاوه بر فایل نوشته شده باید صفحه html ای طراحی شود که با فایل asp لینک شده و برنامه asp داده های دریافتی را به صفحه Html جهت نمایش ارسال کند و صفحه html اطلاعات را نمایش دهد؟
HTML جز حذف نشدنی طراحی وب است حالا با هر زبانی می خواهد باشد. شما باید اطلاعاتتان را یه یک صفحه که می نویسید POST کنید. این صفحه هم میتواند HTML داشته باشد و قطعا یک زبان ارتباط با سرور مثلا همان ASP نیز دارد. در صفحه ی طراحی شده هم تعیین کنید که اطلاعات پست دریافت شده را در جایی ذخیره کند. آنگاه در یک صفحه ی دیگر که مثلا صفحه ی اصلی سایت است که هم HTML دارد هم JavaScript و هم مثلا ASP، اطلاعات ذخیره شده را بازیابی کنید. پس می شود حداقل دو بخش که باید طراحی و کدنویسی شود:
1- دریافت کننده POST
2- نمایش دهنده ی مقادیر
برای یادگیری هم همین انجمن را جستجو کنید مطالب زیادی دستگیرتان خواهد شد. PDF های ASP.net و ویدیوهای آن هم در به راحتی در وب دسترس است.
موفق باشید.
HTML جز حذف نشدنی طراحی وب است حالا با هر زبانی می خواهد باشد. شما باید اطلاعاتتان را یه یک صفحه که می نویسید POST کنید. این صفحه هم میتواند HTML داشته باشد و قطعا یک زبان ارتباط با سرور مثلا همان ASP نیز دارد. در صفحه ی طراحی شده هم تعیین کنید که اطلاعات پست دریافت شده را در جایی ذخیره کند. آنگاه در یک صفحه ی دیگر که مثلا صفحه ی اصلی سایت است که هم HTML دارد هم JavaScript و هم مثلا ASP، اطلاعات ذخیره شده را بازیابی کنید. پس می شود حداقل دو بخش که باید طراحی و کدنویسی شود:
1- دریافت کننده POST
2- نمایش دهنده ی مقادیر
برای یادگیری هم همین انجمن را جستجو کنید مطالب زیادی دستگیرتان خواهد شد. PDF های ASP.net و ویدیوهای آن هم در به راحتی در وب دسترس است.
موفق باشید.
بسیار ممنونم که اشتباهاتمو تصحیح و منو تو مسیر صحیح قرار میدین
چون فعلا روی داده ها پردازش نداریم ،میشه بدون دخیره صرفا نمایش بدیم ؟ مثلا داده های دریافتی به طور پشت سر هم تو یه تکست باکس لیست بشن
این جاوا اسکریپتش بهه کلی گیجم کردش
در مورد مطالب آموزشی هم خودم چن تا مطلب گرفتم ولی چون صرفه جویی در زمان واجبه و منم نمیخوام با همه قابلیتهای asp آشنا بشم اگه فقط اسم کلاسها و متدهای مورد نظر رو معرفی کنید تا بتونم رو اون قسمتا فقط وقت بزارم ممنون میشم
اگه مثالی آموزش مرتبطی(نه آموزش جامع asp )چیزی هم دم دستتون بود ممنون میشم
تشکر :n01:
خیر. باید ذخیره شود چرا که صفحات وب مانند برنامه های ویندوزی نیستند چرا که ممکن است چندین کاربر همزمان داشته باشند و باید به هرکدام سرویسی یکسان در عین حال متقاوت ارائه کنند.
راهکار این است اما تخصص من در بحث ASP نیست که بتوانم برای شما مثال های مناسبی قرار بدهم.لذا درباره ی ادامه ی کار می توانید از نظرات دیگر دوستان استفاده کنید.خصوصا استاد H2 .
موفق باشید.
خیر. باید ذخیره شود چرا که صفحات وب مانند برنامه های ویندوزی نیستند چرا که ممکن است چندین کاربر همزمان داشته باشند و باید به هرکدام سرویسی یکسان در عین حال متقاوت ارائه کنند.
راهکار این است اما تخصص من در بحث ASP نیست که بتوانم برای شما مثال های مناسبی قرار بدهم.لذا درباره ی ادامه ی کار می توانید از نظرات دیگر دوستان استفاده کنید.خصوصا استاد H2 .
موفق باشید.
ممنون
من متوجه شدم که باید با متد post دیتا هامو از طرف ماژول برای سرور بفرستم
حالا موندم چجوری این post رو تو سمت سرور رمزگشایی کنم
همجنان پدیرای راهنماییهای دوستان بزرگوار هستیم :n18:
سلام
بنده پس از ساعات طولانی ولگردی توی msdn و کدپروجکت به کلاس http listener class رسیدم ولی تو همین مرحله استپ کردم و جلو تر نمیرم:n13:
پذیرای هر پیشنهادی ،کمکی توضیحی ،تفسیری هستیم:n28:
ممنون
سلام
میبخشید هفته قبل و هفته جاری ، کمی ترافیک کاری دارم، نتوانستم پاسخ دهم ...
اگر ماژول سخت افزاری شما توانایی POST اطلاعات تحت HTTP را داشته باشد، در طرف سرور آن و در زبانهایی مانند ASP.Net (یا حتی PHP که من بلد نیستم) نباید کد زیادی لازم داشته باشید، خیلی کمتر از آنکه فکرش را کنید یا حتی به کلاس هایی شبیه listener نیاز شود، چون این مربوط به ذات کدنویسی تحت وب میشود و برنامه نویسان وب سایت ها مانند نقل و نبات به آن نیاز دارند!
در حال حاضر برنامه نویسی وب ASP.Net از دو شیوه قدیمی Classic و جدید MVC پشتیبانی میکند.
به عنوان نمونه تحت MVC یک تابع ساده مانند این میتواند اطلاعات POST شده را تحویل بگیرید.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
=====
برای اطلاعات عمومی:
فرآیند [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] چیز خاصی ندارد، خود HTTP یک پروتکل متنی روی TCP است.
به عنوان نمونه برای POST دو مقدار، باید متنی شبیه این را تحت پروتکل پایه TCP ارسال کرد.
یعنی ارسال کننده درخواست POST باید متنی مانند این را به سرور ارسال کند:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که همچین متنی را در سرور ویندوزی، برنامه IIS دریافت و تجزیه و تحلیل میکند و در نهایت تحت ASP.Net MVC با کدی شبیه آنکه در اول مشاهده کردید تحویل برنامه نویس میشود و وی میتواند کدهای مورد نظر خود را روی اطلاعات رسیده اجرا کند.
=====
چون شما با مفاهیم برنامه نویسی تحت وب و حتی #C آشنا نیستید، این مطالب کمی برایتان مجهول، پیچیده و دارای نکات ابهام بسیار زیاد به نظر میرسد.
شما مشخص کنید ماژول ارسال کننده [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] شما چه اطلاعاتی را میفرستد (مانند variant1 که در نمونه فوق متنی بود و variant2 که عددی بود) من کد کاملش را به شما خواهم داد.
اگر شرایط به همین ترتیب باشد ، فقط در جهت کمک در مرحله تحقیق و به مدت محدود میتوانم سرور و دیتابیس هم در اختیارتان بگذارم.
موفق باشید.
یک مطلب دیگر هم اضافه کنم، اگر همچنان در مرحله طراحی هستید و دنبال راه کارهای ساده ای برای آزمایش و تنظیم و نهایی کردن دستگاه و نرم افزار و سخت افزار خود هستید...
برای آزمایش و تحقیق و تست و... شما میتوانید از هر برنامه ای که توانایی دریافت و نمایش اطلاعات TCP را داشته باشد استفاده کنید.
برنامه ای مانند آنچه در پست نهم معرفی شد.
اگر ارسال کننده شما، داده های خود را تحت [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ارسال کند در سمت گیرنده شما باید متنی مانند آنچه پیش از این بیان شد مشاهده کنید:
(اگر متنی شبیه این در گیرنده مشاهده کردید، یعنی ارسال صحیح انجام شده)
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این بسته به سروری (گیرنده) در آدرس [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] اعلان میکند که variant1=Hello و variant2=123
با همین نرم افزار مانیتور (گیرنده و نمایش دهنده TCP) به راحتی میتوانید برنامه و مدار سخت افزاری خود را امتحان و تنظیم کنید.
به سادگی میتوانید فرستنده را به لپ تاپ خودتان متصل کنید (شبکه کنید) و به رایانه خود یک IP ثابت محلی مانند 192.168.1.2 بدهید، حالا رایانه شما در همان شبکه محلی شما IP ثابت دارد ...
یعنی یک کابل شبکه کراس بین آن سخت افزار و رایانه شما...
بسته های [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] هم به همین آدرس ثابت ارسال خواهند شد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
(عدد 8000 معرف پورت مورد استفاده میباشد)
پس اگر هنوز در مرحله آزمایش و تکمیل پروژه تان هستید، با یک کابل کراس + رایانه + یک نرم افزار گیرنده TCP میتوانید مجموعه دستگاه و کارهای خود را آزمایش و تنظیم و تکمیل کنید. (بدون اینترنت و برنامه نویسی رایانه و...)
نمیدانم ولی بطور طبیعی اگر مدارالکترونیکی و برنامه مربوطه اش را هم خودتان طراحی میکنید (مشابه پروژه های AVR,ARM و...)، باید جایی در برنامه سخت افزاری تان باشد تا IP/Mask/Gateway جاری و IP,Port گیرنده در ان قابل تنظیم و تخصیص باشد.
موفق باشید.
علی آقا اینکه لطف میکنید،وقت میزارید و جواب میدید به کنار ،دیدن پستهای خالیتون هم یه تشویقه برای ادامه کار-ممنون از شما و Msba ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) عزیز
-------------
در حال حاضر برنامه نویسی وب ASP.Net از دو شیوه قدیمی Classic و جدید MVC پشتیبانی میکند.
به عنوان نمونه تحت MVC یک تابع ساده مانند این میتواند اطلاعات POST شده را تحویل بگیرید.
بنده در حد بسیار مبتدیانه مدل کلاسیک رو بلدم و براحتی میتونم باهاش کارهای ابتدایی مورد نیاز خودمو انجام بدم ،لامصب انگار با فرانت پیج داری سایت طراحی میکنی، در این حد راحته ولی این mvc به طرز بسیاری گیج کنند است،بنده هر چی زور زدم به طور گرافیکی نتونستم صفحهشو ببینم دو تا تکست باکس بندازم روش ، رو کلاسیک هم که این کد ارورای بنی اسراییلی میگیره
خب حالا برسیم به کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این تیکه چی گار میکنه ؟ یعنی میگه ما اینجا با متد پست کار داریم ؟ یعنی به طور عملی داده های ارسالی یا همون متغیرها رو به تابع بعد از خودش هدایت میکنه یا تنها صرقا یه اعلانه ؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
میشه به طور ساده یه توضیحی در مورد تابع نوع اکشن ریزالت بدین ؟ چی کار میکنه این نوع تابع ؟
2-ما دو تا ورودی براش تعریف کردیم،ولی خب هیچ ها این تابع رو فراخوانی نکردیم و اون دو تا تابع رو به عنوان آرگومان بهش ندادیم ، یعنی بعدا تو بدنه برنامه از این تابع استفاده میکنیم ، یا همینجا تابع استفاده و به کار برده میشه؟
3-با اجازتون بیاین از قسمتهای دیتا بیسش صرق نظر کنیم ، چون فعلا کار من نیس (بعدا بهش میرسیم :n06:) بیاین مثلا یه تکست باکس تعریف کنیم و متغیر اول رو بریزیم توش و نمایش بدیم، چون تنها کاربرش خودمونیم و ازبین رفتن داده ها با بستن صفحه برامون اهمیتی نداره به نظرم این روش خوبیه(درسته؟ )
شما مشخص کنید ماژول ارسال کننده [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] شما چه اطلاعاتی را میفرستد (مانند variant1 که در نمونه فوق متنی بود و variant2 که عددی بود) من کد کاملش را به شما خواهم داد.
4- ماژول درخواستش رو به فرم رشته ای از کاراکترها میفرسته که البته ما فقط با کاراکترهای عددی کار میکنیم مثلا طبق همون فرم :
Content-Length: 10
0123456789
اگر شرایط به همین ترتیب باشد ، فقط در جهت کمک در مرحله تحقیق و به مدت محدود میتوانم سرور و دیتابیس هم در اختیارتان بگذارم.
ممنون در آینده اگه لازم شد ، مزاحمتنو میشیم : دی
نمیدانم ولی بطور طبیعی اگر مدارالکترونیکی و برنامه مربوطه اش را هم خودتان طراحی میکنید (مشابه پروژه های AVR,ARM و...)، باید جایی در برنامه سخت افزاری تان باشد تا IP/Mask/Gateway جاری و IP,Port گیرنده در ان قابل تنظیم و تخصیص باشد.
بله مدار واسط با میکروی arm هستش ،اینم روش جالبیه برای اطمینان از کارکرد ، ولی از اون جایی که پیکره بندیهای تو ماژول با پیکره بندی سطح پایین شبکه دو بحث جدایه ،خودش یه بار اضافه رو از لحاظ زمانی وارد میکنه ، اگه هم بخواهیم از تراشه هایی مثل ENC28j60 استفاده کنم هزینه ها میره بالا
راستی اون برنامه هه هم لینکش غیر فعاله
خیلی ممنونم
سلام
بنده در حد بسیار مبتدیانه مدل کلاسیک رو بلدم ...
کد مشابه ASP.Net WebForm
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
است،بنده هر چی زور زدم به طور گرافیکی نتونستم صفحهشو ببینم...
تا برنامه اجرا نشود امکان مشاهده صفحه وجود ندارد.
اگر شما ASP.Net WebForm را بلد نبودید گمانم ASP.Net MVC را زودتر یادمیگرفتید ولی الآن چون پیشفرض هایی در ذهن تان دارید دنبال همان گذینه ها و همان روش و همان زاویه دید میگردید...
این تیکه چی گار میکنه ؟ یعنی میگه ما اینجا با متد پست کار داریم ؟ یعنی به طور عملی داده های ارسالی یا همون متغیرها رو به تابع بعد از خودش هدایت میکنه یا تنها صرقا یه اعلانه ؟
میشه به طور ساده یه توضیحی در مورد تابع نوع اکشن ریزالت بدین ؟ چی کار میکنه این نوع تابع ؟
ما دو تا ورودی براش تعریف کردیم،ولی خب هیچ ها این تابع رو فراخوانی نکردیم و اون دو تا تابع رو به عنوان آرگومان بهش ندادیم ، یعنی بعدا تو بدنه برنامه از این تابع استفاده میکنیم ، یا همینجا تابع استفاده و به کار برده میشه؟
در MVC این توابع به Action معروف هستند، ما نیازی نیست آنها را فراخوانی کنیم، این Action ها با توجه به فیلترهایی که بالای آنها قید میشود (مانند [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]) خودکار در مقابل درخواست های رسیده اجرا خواهند شد.
پارامترهای ورودی Action ها هم بطور خودکار از مقادیر رسیده به برنامه پرخواهند شد.
کد نمونه کاملتر
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در کد فوق و در یک برنامه عادی، Action اولی برای مشاهده (GET) صفحه site.com/Home/Index خودکار اجرا خواهد شد.
و Action دوم برای submit دکمه save (همان POST) صفحه site.com/Home/Index خودکار اجرا خواهد شد.
یک تابع برای مشاهده و یک تابع برای ذخیره!
ActionResult هم یک کلاس پایه و معرف چیزی است که نتیجه اجرا کد شما برگردانده خواهد شد.
این میتواند برای دانلود یک فایل FileResult باشد و یا برای یک مشاده یک متن خام ContentResult باشد یا حتی یک string یا int عادی باشد، ولی ActionResult به علت کلاس پاسه بودنف معرف همه اینها خواهد بود و میتواند جای همه آنها عمل کند...
FileResult و ContentResult و... وراثت یا نمونه های عملی ActionResult هستند مانند تفاوت/شباهت "درخت" با "کاج" !
بیاین مثلا یه تکست باکس تعریف کنیم و متغیر اول رو بریزیم توش و نمایش بدیم
درخواستی (Request) که ماژول سخت افزاری شما میفرستد و درخواست شما دو درخواست مجزا هستند و شما همین طور نمیتوانید نتایج ارسال یک درخواست دیگر را مشاهده کنید.
مانند این است که شما به تلفنی تماس بگیرید و چیزی بگویید و من چند لحه بعدش تماس بگیرم و بپرسم شما چه گفته اید
کسی باید این بین دو تلفن پیام شما را در کاغذ مشترکی یادداشت کند تا بعد بتوانند به من بگویند شما که تماس گرفته بودید چه گفته ایذ
این کاغذ (مشترک بین همه درخواست ها) میتواند DataBase باشد و یا حداقل شی Application باشد.
نمونه کد ASP.Net WebForm
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
باید صفحه Refresh شود تا آخرین مقادیر رسیده را مشاهده کنید.
طبق همون فرم
Content-Length: 10
0123456789
تا حدودی!
HTTP یک قانون است یک پروتکل یک زبان، قواعد آن دقیق باید رعایت شود...
برخی قوانین متعدد و حالت متفاوت وجود دارد، مثلاً بجای اسم سایت در خط اول میتوان از هدر HOST استفاده کرد یا هدر ها ترتیب خاصی ندارند...
ولی رعایت برخی موارد فوق العاده ضروری هستند و حالت دیگری ندارد، مانند آنکه قبل از ارسال مقادیر یک خط خالی ضروری است و مقادیر هم حتماً باید در قالب name1=value1&name2=value2 ارسال شوند.
علی آقا ...
از اون اول ها یک سوال کوچک برام پیش آمده، این علی آقا دقیقاً کیه؟! :n02::n13:
موفق باشید.
اگر شما ASP.Net WebForm را بلد نبودید گمانم ASP.Net MVC را زودتر یادمیگرفتید ولی الآن چون پیشفرض هایی در ذهن تان دارید دنبال همان گذینه ها و همان روش و همان زاویه دید میگردید...
علاوه بر فرمایشاتتون ؛ کلا انگار حالت کلاسیک ویژوال تره ؛مثلا تو mvc کنترل ها رو نمبشد به صورت تصویری تو متن قرار داد و باید با کدای html کنترلرا رو گذاشت روش،به هر حال
تا حدودی!
HTTP یک قانون است یک پروتکل یک زبان، قواعد آن دقیق باید رعایت شود...
برخی قوانین متعدد و حالت متفاوت وجود دارد، مثلاً بجای اسم سایت در خط اول میتوان از هدر HOST استفاده کرد یا هدر ها ترتیب خاصی ندارند...
ولی رعایت برخی موارد فوق العاده ضروری هستند و حالت دیگری ندارد، مانند آنکه قبل از ارسال مقادیر یک خط خالی ضروری است و مقادیر هم حتماً باید در قالب name1=value1&name2=value2 ارسال شوند.
بنده طبق دستوراتتون یه سایت پختم و گذاشتمش اینجا ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
چون رگولاتورام سوخته ، فعلا تا خرید رگولاتورای جدید ، ماژول خوابیده، بنا براین با کمک رست کلاینت ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])که یه اد آن برای فایرفاکسه ، در نقش کلاینت ، درخواستهامو برای سرور میفرستم ، ولی سرور هیج تغییری نمیکنه ، حتی اگه رفرش بشه ، در خواست فرم ی که شما فرمودین ارسال میشه،و در پاسخ همون صفحه اول سایت برگردونده میشه
فایل سایت :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
از اون اول ها یک سوال کوچک برام پیش آمده، این علی آقا دقیقاً کیه؟! :n02::n13:
:n02:
ممنون
سلام
... درخواستهامو برای سرور میفرستم ، ولی سرور هیج تغییری نمیکنه ...
پروژه شما را دانلود و در VS باز و امتحان کردم و همانطورکه انتظار داشتم صحیح کار کرد ولی متاسفانه هر چه روی dizgah.somee.com امتحان انجام دادم جوابی نگرفتم !
شاید تنظیمات امنیتی در web.config باشد یا تفاوت هایی در نسخه Framework و یا نوشتن دستورات به شیوه بهتر و مطمئن تر و...
چند تئوری دارم که امتحان کنید تا شاید در سرورتان کار کند ولی همانطورکه قولش دادم راه حل کامل تر و راحت تری برایتان دارم.
یک پروژه ساده MVC برایتان درست کردم، که همه اطلاعات رسیده (GET یا POST) را در Cache به مدت 15 دقیقه ذخیره میکند...
صفحه اصلی را که بازکنید، هر یک ثانیه با کمک Ajax خودکار Refresh میشود.
اگر دقت کنید شما اطلاعات را در یک Browser در یک رایانه تغییر دهید (یک درخواست) در رایانه دیگر که صفحه باز باشد (یک درخواست دیگر) تغییرات را مشاهده خواهید کرد.
اطلاعات در GET از طریق آدرس منتقل میشوند مانند site.com/?variant1=123
ولی در پست در بدنه پیام HTTP منتقل میشوند.
الآن در این نمونه برنامه اگر در یک مرورگر با آدرس site.com/?variant1=123 برنامه را اجرا کنید، فوراً در مرورگر دیگر variant1=123 را خواهید دید.
برنامه جهت نمونه یک TextBox هم برای POST دارد که مجدد با وارد کردن یک عدد و کلیک دکمه مربوطه مشاهده میکنید که مقدار مورد نظر در تمام نسخه های باز دیگر مرورگرها نمایش داده خواهد شد.
در واقع هرکس اطلاعاتی را به این برنامه با POST یا GET منتقل کند همه که در حال مشاهده صفحه باشند، آن را خواهند دید.
اینطوری حتی نیاز نیست بدانید، مدارالکترونیکی شما با چه نامی اطلاعات خود را ارسال میکند، برنامه همه مقادیر رسیده را فهرست میکند و نیازی به Refresh دستی هم وجود ندارد.
یک ساعت انداز #C هم در برنامه است که تنها کاربردش آن است که تاوقتی دارد تغییر میکند، مطمئن خواهید بود که کد Ajax که برای Refresh صفحه است، در حال کارکرد صحیح است.
سورس:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
برنامه را برایتان در یک فضای وب شخصی هم آپلود کردم که بدلیل آنکه ذخیره این مقادیر در کل سایت مشترک است و کجکاوی دیگران اختلالی در کار شما ایجاد نکند، آدرس را برایتان پ.خ کردم.
موفق باشید.
بینهایت ممنون
همونطور که خدمتتون عرض کزدم بنده نتایج رو بررسی و مراحل بعدی رو همینجا عنوان میکنم
:n16:
سلام
من برگشتم، بعد از تهیه رگولاتورا،IC مبدل USB به سریالم سوختش ، که با مقداری بد شناسی دیر بدستم رسید، ولی حالا همه چی آمادس
ولی هنوز من نتونستم داده های ارسالی رو روی سایت ببینم
در حالت عادی ماژول متد get رو روی همه سایتها اجرا میکنه و متغاقبا سایت مورد نظر کدهای html رو برای ماژول میفرسته و من میتونم اونا رو تو خروجی ماژول ببینم ولی به هیچ وجه با اون ساب دامینی که علی آقا( :n02:) زحمتشو کشیدن جواب نمیده یعنی:
در حالت عادی و با مرورگر با متد get و روشی که آقای حاجی شریفی فرمودن سایت داده ها رو میگیره
از طرفی متد گت روی همه سایت ها کار میکنه حتی خود سایت مورد نظر
ولی متاسفانه نه متد گت و نه متد پست رو اون ساب دامین جواب نمیده (متد گت روی بقیه ساب دامین ها جواب میده )
بنا براین من یه هاست و دامین ارزون خریدم تا فایلها رو اونجا آپلود کنم و ببینم اینجا جواب میشه گرفت یا نه ؟ ولی وقتی صفحات رو (بدون تغییر در فایل کانفیگ ) آپلود میکنم صفحه بالا نمیاد ، تو تنظیمات هاست دیدم که ورژن دات نت فریم ورکش 4هه وقتی اومدم فریم ورک تنظیم شده روی سایت رو از 4.5 به 4 تغییر بدم ، کلی ارورای فضایی ظاهر شد تو ویژوال استودیو
پروژه قبلی هم که با کمک شما ساختم رو هم وقتی آپلود میکنم ، سایت بالا میاد و حتی با متد get تو ماژول میتونم بخونمش ولی به متد post براش داده میفرستم توش تاثیری نمیزاره
حالا آقای حاجی شریفی خاوهشی که ازتون دارم ممکنه بنده مشخصات هاستم رو در اختیارتون بزارم و شما لطف کرده و ببینید چه مرگشه که صفحات رو بالا نمیاره ؟
بازم جسارتم رو ببخشید و ممنون :n16:
دوباره سلام
من یه افزونه برای کروم پیدا کردم به اسم DHC که درخواست های پست و گت رو میشه باهاش فرستاد
متاسفانه توی هر دو پروژهی جدید و قدیمی وقتی که توی یه درخواست پست یه داده رو براشون میفرستم هیچ واکنشی نشون نمیدن
کسی از دوستان ممکنه برای دو صفحه test.cyber14.com یا dizgah.ir با این افزونه ها درخواست های post رو بفرسته و ببینه نتیجه توی سایت نمایش پیدا میکنه یانه؟
------------------
روش دیگه ای که برای حل مشکل به ذهنم رسید اینه که مثلا یه تکست باکس بزاریم تو صفحه و کل درخواستهای post رو بگیریم و بریزیم روش و نمایش بدیم ببینیم اصلا درخواست به صفحه میرسه یا نه ؟
ممنون
سلام برای آینده و دوستانی که شاید مشکا مشابهی داشته باشن میتونن از دو سایت زیر استفاده کنن:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
این سایتا یه لینک بهتون مینن که میتونین ریکوئست هاتون رو بفرستین به اون صفحات ، بعدا تو سایت میتونین محتوای درخواستها و داده های ارسالی رو مشاهده کنین
+ من همچنان کدهای قبلی رو + کلاس [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] دارم انگولک میکنم بلکه بتونم چیز مشابهی درس کنم و همچنان منتظر راهنماییاتون هستم
با تشکر ویژه از آقای حاجی شریفی و msba وسایر دوستان عزیز:n16:
سلام
بنده مشخصات هاستم رو در اختیارتون بزارم و شما لطف کرده و ببینید چه مرگشه که صفحات رو بالا نمیاره ؟
پ.خ کنید.
من یه افزونه برای کروم پیدا کردم به اسم DHC که درخواست های پست و گت رو میشه باهاش فرستاد
با این افزونه ها درخواست های post رو بفرسته و ببینه نتیجه توی سایت نمایش پیدا میکنه یانه؟
برای POST اطلاعات تحت HTTP نیاز به برنامه و پلاگین و... نیست
با کدی شبیه این میتوان اطلاعاتی را به آدرسی مشخص POST کرد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگر هم شرایط کدنویسی و استفاده از #C را نداشته باشید راه ساده و بنیادین تر دیگری هم وجود دارد،
کافیست متن زیر را کپی و با کمک Notepad در فایلی با نام و پسوند file.htm ذخیره کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حال فایل را دبل کلیک کنید و مقادیر ورودی را پر کرده و دکمه موجود را کلیک کنید، اطلاعات POST خواهد شد.
این مورد فایل html دقیقاً همان اتفاقی است که در مرورگر واقعی رخ میدهد، مطمئن ترین و استانداردترین حالت ممکن.
با کد #C فوق و یا فایل html فوق به راحتی میتوانید صحت عملکرد کد سمت سرور خود را بررسی کنید.
شما خیلی راحت میتوانید با یک برنامه TCP-Server مانیتور کنید که دستگاه تان چه اطلاعاتی و با چه متن و در چه شکل و قالبی را ارسال میکند و مشکل کجاست
موفق باشید.
سلام
پ.خ کنید.
برای POST اطلاعات تحت HTTP نیاز به برنامه و پلاگین و... نیست
با کدی شبیه این میتوان اطلاعاتی را به آدرسی مشخص POST کرد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگر هم شرایط کدنویسی و استفاده از #C را نداشته باشید راه ساده و بنیادین تر دیگری هم وجود دارد،
کافیست متن زیر را کپی و با کمک Notepad در فایلی با نام و پسوند file.htm ذخیره کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حال فایل را دبل کلیک کنید و مقادیر ورودی را پر کرده و دکمه موجود را کلیک کنید، اطلاعات POST خواهد شد.
این مورد فایل html دقیقاً همان اتفاقی است که در مرورگر واقعی رخ میدهد، مطمئن ترین و استانداردترین حالت ممکن.
با کد #C فوق و یا فایل html فوق به راحتی میتوانید صحت عملکرد کد سمت سرور خود را بررسی کنید.
شما خیلی راحت میتوانید با یک برنامه TCP-Server مانیتور کنید که دستگاه تان چه اطلاعاتی و با چه متن و در چه شکل و قالبی را ارسال میکند و مشکل کجاست
موفق باشید.
ممنون حقیقتا نمیدونم مشکا کجاست،با کدهای html شما داده ها براحتی ارسال میشن ، ولی از طریق ماژول به هیچ وجه نمیشه چیزی رو منتقل کرد ، برنامه ای رو هم که فرمودین چون تو کلاینت ساید ماژوله نمیشه از همچین ابزارایی (مثل فیدلر و وایر شارک و...) استفاده کرد و تو سرور هم که فک نمیکنم اجازه اجرای همچین افزارایی رو داشته باشیم
ممنون ازتون
سلام
... برنامه ای رو هم که فرمودین چون تو کلاینت ساید ماژوله نمیشه از همچین ابزارایی (مثل فیدلر و وایر شارک و...) استفاده کرد و تو سرور هم که فک نمیکنم اجازه اجرای همچین افزارایی رو داشته باشیم ...
شاید خنده دار باشد، ولی لحظه ای به ذهنم رسید که احیاناً فکر نکنید که سرور باید حتماً سخت افزار و کابل کشی خاصی داشته باشد و سیستم عاملش هم Windows Server و... باشد !
سرور یعنی خدمات دهنده، ارائه دهنده خدمات، یک کامپیوتر رومیزی ساده یا یک لپ تاپ معمولی حتی با WinXP درپیت هم میتواند نقش سرور را بازی کند، بدون دسترسی به اینترنت، بدون سخت افزار اضافه و حتی نصب نرم افزارهای عجیب و غریب اضافه ... !
تفاوت سخت افزار رایانه هایی که برای سرور شرکت ها یا اینترنت استفاده میشود فقط افزایش قدرت و بازدهی است، یعنی یک رایانه معمولی هم میتواند سرور شود فقط شاید زیر بار ترافیک اتصال همزمان هزاران کلاینت کندتر عمل کند.
تفاوت Windows Server هم با Windows های عادی در ارائه یکسری برنامه های حاضر آماده مفید در سرورهاست تا نیازی به خرید و دانلود نرم افزارهای پر استفاده نباشد، ضمن اینکه تقریباً اغلب این نرم افزارهای اضافه بطور پیش فرض در Windows Server خام نصب نیستند ، یعنی مثلاً تاوقتی شما نیازی به راه اندازی FTP ندارید، خوب نصبش نمیکنید!
حتی وقتی دو رایانه معمولی تک را به هم وصل میکنید، میشود هر دو خدماتی به هم بدهند و خدماتی از یکدیگر دریافت کنند، مثلاً یکی Database نصب شده خودش را در اختیار دیگری هم قرار دهد و دیگری هم FileShare خودش را در اختیار آن یکی قرار دهد، آن وقت هر دو سرور یکدیگر و در عین حال هر دو کلاینت یکدیگر خواهند شد!
==============
در خصوص مشکل سایت تان، اجازه دهید، مشکل سایت تان را در اولین فرصت خالی بررسی خواهم کرد.
شب خوش.
سلام
شاید خنده دار باشد، ولی لحظه ای به ذهنم رسید که احیاناً فکر نکنید که سرور باید حتماً سخت افزار و کابل کشی خاصی داشته باشد و سیستم عاملش هم Windows Server و... باشد !
سرور یعنی خدمات دهنده، ارائه دهنده خدمات، یک کامپیوتر رومیزی ساده یا یک لپ تاپ معمولی حتی با WinXP درپیت هم میتواند نقش سرور را بازی کند، بدون دسترسی به اینترنت، بدون سخت افزار اضافه و حتی نصب نرم افزارهای عجیب و غریب اضافه ... !
تفاوت سخت افزار رایانه هایی که برای سرور شرکت ها یا اینترنت استفاده میشود فقط افزایش قدرت و بازدهی است، یعنی یک رایانه معمولی هم میتواند سرور شود فقط شاید زیر بار ترافیک اتصال همزمان هزاران کلاینت کندتر عمل کند.
تفاوت Windows Server هم با Windows های عادی در ارائه یکسری برنامه های حاضر آماده مفید در سرورهاست تا نیازی به خرید و دانلود نرم افزارهای پر استفاده نباشد، ضمن اینکه تقریباً اغلب این نرم افزارهای اضافه بطور پیش فرض در Windows Server خام نصب نیستند ، یعنی مثلاً تاوقتی شما نیازی به راه اندازی FTP ندارید، خوب نصبش نمیکنید!
حتی وقتی دو رایانه معمولی تک را به هم وصل میکنید، میشود هر دو خدماتی به هم بدهند و خدماتی از یکدیگر دریافت کنند، مثلاً یکی Database نصب شده خودش را در اختیار دیگری هم قرار دهد و دیگری هم FileShare خودش را در اختیار آن یکی قرار دهد، آن وقت هر دو سرور یکدیگر و در عین حال هر دو کلاینت یکدیگر خواهند شد!
==============
در خصوص مشکل سایت تان، اجازه دهید، مشکل سایت تان را در اولین فرصت خالی بررسی خواهم کرد.
شب خوش.
سلام ممنون
منظور بنده این بود که پرمیشن های لازم جهت اجرای فایل های اجرایی در اختیار بنده نیست
یعنی تصور من اینه که برای این که بتونیم برنامه های مورد نظر خودمون رو رو سرور نصب و اجرا کنیم حداقل باید یه vps خریده باشیم تا سطح دسترسی یک چنین اعمالی در اختیاره ما باشه
و باز طبف تصوراتم توی هاستهای اشتراکی عادی که ما میخریم اجازه نصب همچین نرم افزارهایی که فایل اجرایی exe دارن در اختیار مانیست
نمیدونم مطمئن نیستم
ممنون از لطفتون
سلام
میبخشید فرصت نکردم و کمی زمان برد ...
وقت را صرف کشف ایراد عدم نمایش سایت تان نکردم (یا صحیح publish نکرده بودید و یا هاست تان از framework4.5 پشتیبانی نمیکند) برای صرفه جویی در زمان، پروژه قبلی را به Framework4 و MVC4 تنزل دادم و پس از حذف کل ftp تان نسخه جدیدی publish کردم که خوشبختانه جواب داد و الآن کار میکند.
همانطور که پیش از این هم گفتم، کد فعلی تمام پارامتر های رسیده تحت پروتکل پایه HTTP را مانیتور و نمایش میدهد.
هاستهای اشتراکی عادی که ما میخریم اجازه نصب همچین نرم افزارهایی که فایل اجرایی exe دارن در اختیار مانیست
من هم منظورم این نبود، منظورم آن بود که برای سادگی و حداقل در زمان توسعه و تکمیل پروژه تان از لپ تاپ یا رایانه خانگی خودتان استفاده کنید ... بدون اینترنت بدون نصب مجدد ویندوز بدون ...
=====
درهرحال امیدوارم سریعتر مشکل تان حل شود و به شیرینی نتیجه نهایی برسید.
موفق باشید.
با سلام خدمت همه دوستان علی الخصوص جناب حاجی شریفی
متاسفانه مشکل من با asp حل نشد راستش هیچ جوره هم نفهمیدم چرا ؟ به هر حال من تو این دو سه روز یه دوره فشرده php دیدم و تونستم کد زیر رو بنویسم که کارمو راه میندازه تقریبا
البته همچنان متد post جواب نمیده ولی با متد گت به راحتی میتونم دیتا ها رو ارسال و توصفحه بگیرم
به هر حال ممنون از لطف همگی
اینم سورس کد شاید به درد یکی دیگه خورد
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.