خانه / آموزشی / رشته های دانشگاهی / دروس رشته کامپیوتر / دروس تخصصی / مهندسی اینترنت / پروژه چت گروهی برنامه نویسی سوکت (Socket Programming) به زبان #C

پروژه چت گروهی برنامه نویسی سوکت (Socket Programming) به زبان #C

این پروژه ادامه آموزش برنامه نویسی سوکت وب سایت دانشجوی ایرانی می باشد که توسط علی علیخانی صورت گرفته است . به اطلاع دانشجویان و سایت های دیگر می رساند این پروژه تنها برای یادگیری برنامه نویسی سوکت و توسط وب سایت دانشجوی ایرانی در اختیار عموم قرار گرفته است. نویسنده استفاده آن بدون یادگیری و انتشار آن بدون ذکر لینک منبع (دانشجوی ایرانی) را مجاز نمی داند.

عنوان پروژه : چت گروهی

زبان برنامه نویسی : سی شارپ (#C )

برنامه نویس : علی علیخانی

مجوز انتشار : انتشار با لینک منبع مجاز است

حجم فایل : ۱۰۸ کیلوبایت

منبع : دانشجوی ایرانی

دانلود پروژه

توضیحات : در این پروژه یک برنامه به عنوان سرور و یک برنامه به عنوان کلاینت وجود دارد ، برنامه کلاینت بر پیکره شبکه بر روی سیستم های مختلف قابل اجرا می باشد و قبل از برقراری ارتباط می بایست IP سرویس دهنده (سیستمی که برنامه سرور بر روی آن اجرا شده است) بر روی آن تنظیم گردد . پس از برقراری ارتباط کلاینت با سرور نام و مشخصات آن در لیست کاربران حاضر بر روی سرور ثبت می گردد . هرگاه یک کلاینت اقدام به ارسال پیام نماید ، این پیام به سرور ارسال خواهد شد و سپس سرور آن پیام را برای دیگر کلاینت ها ازسال خواهد نمود ، بدین طریق افراد حاضر می توانند با هم به گفتگو بپردازند. در صورتی که برای تست برنامه شبکه در اختیار ندارید می توانید برنامه سرور و کلاینت را بر روی یک سیستم اجرا نمایید ، بدین طریق که برنامه سرور را یک بار و برنامه کلاینت را چند بار و با نام های متفاوت ثبت می کنید و با IP پیشفرض خود سیستم (۱۲۷٫۰٫۰٫۱) اقدام به تست برنامه می نمایید. در پایان مجدداً بر لزوم یادگیری برنامه نویسی سوکت تاکید دارم که برای این منظور از آموزشهای قبلی و توضیحات کد ها می توانید بهرمند شوید.(علی علیخانی)



همچنین می توانید از مطالب زیر دیدن فرمایید:

جزوه آموزشی برنامه نویسی سوکت (Socket Programming)

جزوه آموزشی برنامه نویسی سوکت به زبان #C نوشته بابک لونی ، این جزوه شامل …

۳۰ نظر

  1. پشتیبانی میکنه

  2. ببخشید زبان فارسی در هنگام چت پشتیبانی نمیکنه چیکار کنیم؟؟

  3. یه سوال دیگه که دارم این که با مبحث signal r همه میشه این برنامه رو گسترش بدید

  4. خیلی خیلی ممنونم از این برنامه ای که درست کردین
    ان شالله روز به روز پشیرفت کنید

  5. در آموزش برنامه نویسی سوکت که لینکش در متن پست هست توضیح داده شده

  6. سلام ممنون از برنامتون
    من میخواستم عکس هم ارسال کنم با سوکت پروگرمینگ و نیاز به راهنمایی دارم
    راهنماییم کنید.
    خیلی ممنون

  7. خیر نمیتوانیم ایمیل نماییم
    مطالب با لینک مستقیم را نمیتوانید دانلود کنید؟!!

  8. سلام خسته نباشید میشه واسم کدا رو ایمیل کنید؟؟
    ممنون

  9. شما بجای چاپ کردن در باکس دستور کنسول بگذار

  10. سلام
    ایا همین برنامه و برنامه چت دونفره تحت کنسول شو هست

  11. سلام
    من فقط میتونم بگم ممنون

  12. ممنون عالی بود

  13. سلام دوست عزیزم. امیدوارم همیشه موفق باشی و مثل الان مهربان. ممنونم از لطفت.

  14. سعیدخدادادی سالاروند

    سلام ممنون ازبرنامه

  15. در حال حاضر آموزش به زبان C نداریم

  16. ممنون خیلی مفید بود.فقط همچین برنامه ای به زبان c ندارید؟

  17. با سلام وخسته نباشید خیلی عالی بود

  18. ممنون عالی بود

  19. شما اراده کن ، تحت وب هم میتونی بنویسی
    از کتابهای مرجع داخل سایت کمک بگیر
    قطعا مطالب مفیدی پیدا میکنی

  20. میخواستم بدونم این برنامه تحت وب هم اجرا میشه یا نه

  21. دوست عزیز شما در قسمت سرور یکبار سوکت رو و ماکزیمم کانکشن هایی که میتونن به اون سوکت وصل بشن رو تعریف میکنید :
    server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    EndPoint ipendpoint = new IPEndPoint(IPAddress.Parse(serverIP), serverPort);
    server.Bind(ipendpoint);
    server.Listen(maxConnection);
    serverStart = true;
    Thread startServerThread = new Thread(new ThreadStart(startServer));
    startServerThread.Start();
    بعد از اون سوکت در قسمت سرور با متد اکسپت شروع به گوش کردن میکنه تا کلاینتی درخواست اتصال بده و این گوش کردن رو تا زمانی که سرور در حالت استارت هست انجام میده.
    در قسمت کلاینت آی پی سرور ست میشه و در هرکجای شبکه که باشه به آی پی و پورت سرور خودش رو کانکت میکنه ، وقتی درخواست اتصال رو داد سرور آی پی و پورت کلاینت رو در مشخصات کانکشن خودش ذخیره میکنه
    server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    try
    {
    IPAddress ipAddress = IPAddress.Parse(ServerIPAddress);
    server.Connect(ipAddress, ServerPortNo);
    }
    catch {
    MessageBox.Show(“IP invalid Or Server Not Found”);

    }

    tRecive = new Thread(new ParameterizedThreadStart(Startclient));
    tRecive.Start(server);
    txtname.Focus();
    مورد کاربرد تابع HTONS برای هماهنگ سازی ماشین های LE هستو اگر استفاده بکنید قطعا مشکلی پیش نمیاد
    چون پروتکل HTTP‌بصورت پیفرض از حالت BE پشتیبانی میکنه
    این تابع برای تبدیل کلمات دو بایتی به حالت BE هست
    اگر میخواید بیشتر راجبش بدونید درباره Big Endian , Little Endian یک مطالعه ای بفرمایید

  22. انشاالله قرار میدم فقط انجام بشه! (:
    من قبل از هر کانکشن، آی پی ۱۲۷٫۰٫۰٫۱ رو ست می کنم ولی درست نمیشه

    سوال بعدیم بی جواب موند! آیا تبدیلات الان لازمه؟ htons , …

  23. این برنامه ای که در پیش روی شماست با زبان #C هست و هم بر روی ۱ سیستم و هم بر روی شبکه به خوبی کار میکنه
    در زبان C برنامه نویسی سوکت انجام ندادم ولی کافیه برای هر قسمت کار Syntax صحیح دستورات معادل رو پیدا کنید
    برای قسمت آخر ، این برنامه ذاتاً برای شبکه هست پس برنامتون رو طوری بنیسید که لازم نباشه فقط بر روی یک سیستم اجرا بشه.
    برای تعریف سوکت به آدرس IP و پورت مربوطه نیاز هست ، پس قبل از تعریف هر کانکشن باید آدرس ip رو ست کنی ، و اگر میخوای پیام بر روی سوکت خود سیستم ارسال بشه از آدرس پیشفرض خود سیستم استفاده میکنی.
    در ضمن آموزش کامل برنامه نویسی سوکت با سی شارپ بر روی سایت موجود هست.
    توصیه میکنم پروژتون رو انجام دادید با توضیحات در اختیار ما بگذارید تا شما هم به چند نفر دیگه کمک کرده باشید

  24. سلام. من یه پروژه باید بنویسم با c. توی اون، وقتی ۱ ماشین دارم، می خوام چندتا کلاینت و یه سرور داشته باشم
    اونوقت هرجا که از آدرس دهی استفاده شده، هم توی سرور و هم توی کلاینت، آدرس رو ۱۲۷٫۰٫۰٫۱ست می کنم ولی برنامه ام بطور کامل اجرا نمی شه و ارور و باگ هم نمی ده! فکر می کنم توی همون کانکت شدنشون مشکل دارن.
    میشه بطور دقیق بفرمایید که باید این آدرس ۱۲۷٫۰٫۰٫۱ رو کجا به کلاینت و سرور بدیم؟

    همچنین وقتی کلاینت ها و سرور،روی یه ماشینن و تو شبکه نیستن، آیا لازمه وقتی داریم از سوکت استریم استفاده می کنیم، تبدیل های htons و … رو انجام بدیم؟

  25. سلام خیلی ممنون…
    واقعا خوبه
    این استادا که فکر ما نیستن.هرکدوم ۳ ۴ تا پروژه…

  26. سلام
    دوست گرامی مواردی که شما با اونها مشکل دارید یا تعریفی هستند یا روال دست نوشته
    مثلا اگر با شیء دیکشنری آشنایی ندارید میتونید از MSDN استفاده کنید و خواص این شیء رو یاد بگیرید
    ولی از اسمش هم مشخصه که توسط این شیء با استفاده از یک ایندکس میتونید به محتوای مربوط به اون اندیس دست پیدا کنید
    یا وقتی یک Thread تعریف میکنید که باید کاری رو بهش محول کنید که میتونه این کار تحت نام یک روال باشه
    یا مدیریت استثنا ها
    همه اینها رو میتونید از Help نرم افزار که همون MSDN هست بخونید و یاد بگیرید و یا به بخش برنامه نویسی پیشرفته برید و از آموزشهای #C سایت استفاده کنید
    متد هایی رو هم که دربارشون توضیح میخواین اسمشون کاملا داره کارشون رو توضیح میده
    شما در داخل چت همگانی یک پیام رو ارسال میکنید ، ارتباط شما فقط با سرور برقرار هست ، پیغام به سرور ارسال میشه ، و سرور پیغام شما رو به همه ارسال میکنه و همه (foreach (var client in clients) بر روی دیکشنری از کلاینت ها پیمایش میکنه و پیغام شما رو برای همه جز خود شما ارسال میکنه)
    در متد بعدی (clientsLogout) اگر شما سرور رو متوقف کنید کلاینت ها باید از متوقف شدن سرور مطلع بشن ، هرگاه دستور STOP صادر بشه کلاینت ها توسط این متد از قطع شدن اتصال مطلع میشن

  27. با سلام مجدد
    من تو بعضی از سورس ها اشکال دارم لطفا” اگه ممکنه راهنمایی کنید :
    سورس ها مربوط به برنامه سرور می باشند

    private Dictionary clients = new Dictionary(); (1

    ۲ ) Thread clientThread = new Thread(new ParameterizedThreadStart(clientconnection));

    ۳ ) throw new Exception();

    ۴ )کاربا متد broadCast
    ۵ )متد clientsLogout()
    Thread startServerThread = new Thread(new ThreadStart(startServer (6 ));
    startServerThread.Start();

    با تشکر از شما

  28. سلام
    واقعا عالی بود خیلی به من کمک کرد .ممنون

  29. سلام‌
    خیلی ممنون عالی بود

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *