PDA

View Full Version : سوال: Socket programing با C#



My_LoVe_IRAN
یک شنبه 22 اردیبهشت 1392, 10:46 صبح
با سلام خدمت دوستان
چطور میتونم تو سوکت پروگرمینگ یک log server بسازم ؟
من میخام برای یه شبکه مثل isp دانشگاه یک log server بسازم ،آشنایی خیلی کمی هم با socket programing دارم ،نمیدونم از کجا باید شروع کنم ،اگر ممکنه کمک کنین ،تشکر
زبان برنامه نویسی هم باید C#‎ باشه

My_LoVe_IRAN
یک شنبه 22 اردیبهشت 1392, 19:34 عصر
کسی از دوستان چیزی نمیدونه ؟!!!

My_LoVe_IRAN
سه شنبه 24 اردیبهشت 1392, 23:23 عصر
جواب سوالم اینقدر سخته یا اینکه ...
اوکی ،کمی بیشتر توضیح میدم ،امیدوارم دوستان راهنماییم کنن !!!
سیستم باید طوری عمل کنه که طرف کلاینت نیاز نباشه چیزی نصب کنه ،یعنی کلاینت نیاد برنامه بگیره و نصب کنه بعد بخاد بره تو یه سایتی ،به همین دلیل فقط برنامه سمت سرور نوشته میشه و فقط به پورت 80 گوش بده ،حالا مشکل اینجاست ،چطور میشه به این پورت گوش داد و فهمید چه کسی با چه ip وارد شده و کجا داره میره ؟ در صورتی که کلاینت با هیچ برنامه ای به سرور وصل نشده ،فقط به isp وصل شده و درخواست یک سایت کرده !!!

_behnam_
پنج شنبه 26 اردیبهشت 1392, 00:36 صبح
سلام.
اینجور که من متوجه شدم شما میخواید یک وب سرور بسازید که از طریق مرورگر به اون وصل بشید؟
خوب راه حل اینه که در مرحله اول شما باید به سوکت نویسی در سیشارپ وارد باشید که بتونید تمام متدهای یک سوکت رو پیاده سازی کنید در غیر این صورت از کلاس آماده استفاده کنید. اینجـا قرار داده ام (http://barnamenevis.org/showthread.php?396470-%D8%A8%D8%B1%D9%82%D8%B1%D8%A7%D8%B1%DB%8C-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%DA%86%D9%86%D8%AF-%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA-%D8%A8%D8%A7-%DB%8C%DA%A9-%D8%B3%D8%B1%D9%88%D8%B1-%D9%88-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D9%BE%DB%8C%D8%A7%D9%85-%D8%A7%D8%B2-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%D9%87%D9%85%D9%87-%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA%D9%87%D8%A7&p=1759351&viewfull=1#post1759351)
خوب با توجه به اینکه میخواهید وب سرور بسازید پس باید به صورت مالتی کلاینت باشه. یعنی همزمان چندین کلاینت بتونن به برنامه متصل بشن.
پس شما یک سوکت اختصاص میدهید برای گوش به زنگ بودن پورت 80 که فقط وفقط درخواست های کانکت شدن رو بگیره. ویک آرایه از سوکت هم برای Accept کردن کلاینت ها.
وقتی که کلاینت درخواست اتصال داد با سوکتی که وظیفه گوش بزنگ بودن را به عهده دارد شناسه کلاینت رو بگیرید و با سوکت دیگر Accept کنید. برای هربار که کلاینتی درخواست داد باید یک سوکت جدید بر آرایه قرار دهید.

موفق باشد.

FastCode
پنج شنبه 26 اردیبهشت 1392, 00:40 صبح
به نظر من خیلی بهتره که از pcap استفاده کنید.چون هم فرمتش استاندارد هست و با wireshark باز میشه و سرعت و دقتش بالاست.

My_LoVe_IRAN
دوشنبه 20 خرداد 1392, 13:41 عصر
سلام.
اینجور که من متوجه شدم شما میخواید یک وب سرور بسازید که از طریق مرورگر به اون وصل بشید؟
خوب راه حل اینه که در مرحله اول شما باید به سوکت نویسی در سیشارپ وارد باشید که بتونید تمام متدهای یک سوکت رو پیاده سازی کنید در غیر این صورت از کلاس آماده استفاده کنید. اینجـا قرار داده ام (http://barnamenevis.org/showthread.php?396470-%D8%A8%D8%B1%D9%82%D8%B1%D8%A7%D8%B1%DB%8C-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%DA%86%D9%86%D8%AF-%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA-%D8%A8%D8%A7-%DB%8C%DA%A9-%D8%B3%D8%B1%D9%88%D8%B1-%D9%88-%D8%A7%D8%B1%D8%B3%D8%A7%D9%84-%D9%BE%DB%8C%D8%A7%D9%85-%D8%A7%D8%B2-%D8%B3%D8%B1%D9%88%D8%B1-%D8%A8%D9%87-%D9%87%D9%85%D9%87-%DA%A9%D9%84%D8%A7%DB%8C%D9%86%D8%AA%D9%87%D8%A7&p=1759351&viewfull=1#post1759351)
خوب با توجه به اینکه میخواهید وب سرور بسازید پس باید به صورت مالتی کلاینت باشه. یعنی همزمان چندین کلاینت بتونن به برنامه متصل بشن.
پس شما یک سوکت اختصاص میدهید برای گوش به زنگ بودن پورت 80 که فقط وفقط درخواست های کانکت شدن رو بگیره. ویک آرایه از سوکت هم برای Accept کردن کلاینت ها.
وقتی که کلاینت درخواست اتصال داد با سوکتی که وظیفه گوش بزنگ بودن را به عهده دارد شناسه کلاینت رو بگیرید و با سوکت دیگر Accept کنید. برای هربار که کلاینتی درخواست داد باید یک سوکت جدید بر آرایه قرار دهید.

موفق باشد.

سلام
اول از همه تشکر میکنم
دوم اینکه چيزی که شما گفتين شبيه به چت سرور هست ،اما من چنين چيزی نمیخام ،یعنی بحث سرور و کلاينت نيست اصلا !!!
چيزی که من ميخوام بنويسم ،اینه که ،توی یه شبکه ،دقيقا مثل شبکه دانشگاه ،که همه سيستم ها به اينترنت وصل هستن ،همچنين بهم ديگه اتصال دارند (وقتی ping ميدين خطا نمیده) بتونيم وقتی رو يک سيستم هستيم بفهميم سيستم های ديگه کجا دارن ميرن به چه سایتی و ... یعنی port 80 همه رو شنود کنيم ،واسه اينکار بايد defualt getway رو شنود کنيم ،چون واسه همه يکی هست ،چطور ميتونم این کار رو بکنم ؟ سوال من اينه

My_LoVe_IRAN
دوشنبه 20 خرداد 1392, 13:43 عصر
به نظر من خیلی بهتره که از pcap استفاده کنید.چون هم فرمتش استاندارد هست و با wireshark باز میشه و سرعت و دقتش بالاست.

ميبخشيد منظورتون رو نفهميدم !!!

My_LoVe_IRAN
سه شنبه 21 خرداد 1392, 16:54 عصر
من اين پروژه رو از همين سايت گرفتم ،تقريبا همچين چيزی میخام اما مشکل اینه که این فقط رو IP های سيستم خودم کار میکنه ،من میخام رو default gateway شنود کنم نه ipv4 address چطور میتونم این کار رو بکنم ؟
http://uploadtak.com/images/j1122_mohandesi_internet.rar

FastCode
سه شنبه 21 خرداد 1392, 18:30 عصر
برای این کار باید برنامه رو روی gateway نصب کنید.

My_LoVe_IRAN
چهارشنبه 22 خرداد 1392, 11:26 صبح
برای این کار باید برنامه رو روی gateway نصب کنید.

تشکر بابت جوابتون
اما من نمیخام رو gateway باشه ،میخام روی کلاینت ها بتونم gateway رو شنود کنم ،gateway یک روتر هست ،چطور روی روتر برنامه نصب کنم ؟
من میخام روی یک کلاینت بشه فهمید کلاینت بقلی داره کجا میره و چیکار میکنه ؟!! یه logserver میخام

mohammadhosin
دوشنبه 27 خرداد 1392, 22:31 عصر
سلام به همه
نمیدونم کمک میکنه یا نه
اما میتونی از ریموت با wireshark استفاده کنی
اینم فیلم آموزش
لینک دانلود (http://stranger.tk/archive/remot%20wireshark.zip)

یعنی از کلاینت ها ریموت بگیری

FastCode
دوشنبه 27 خرداد 1392, 22:52 عصر
سلام به همه
نمیدونم کمک میکنه یا نه
اما میتونی از ریموت با wireshark استفاده کنی
اینم فیلم آموزش
لینک دانلود (http://stranger.tk/archive/remot%20wireshark.zip)

یعنی از کلاینت ها ریموت بگیری
wireshark از pcap استفاده میکنه.:تشویق:
libwireshark, tshark و tcpdump هم هستن ولی فکر میکنم همون pcap/libpcap برای کار شما مناسب باشه