سورس نرم افزار پیام رسان به زبان سی شارپ

c sharp messenger application 7439 تصویر

سورس نرم افزار پیام رسان به زبان سی شارپ

در این بخش سورس نرم افزار پیام رسان به زبان سی شارپ (Client/Server) را با هدف آموزش برخی از مفاهیم برنامه نویسی سوکت آماده کرده ایم که در ادامه می توانید توضیحات و تصاویر مربوط به این نرم افزار را مشاهده کنید.

آموزش های موجود در اینترنت در مورد برنامه نویسی سوکت، اکثرا فقط نحوه ارتباط با سرور و ارسال یک پیام متنی ساده را آموزش می دهند که فقط برای افرادی که هیچ دانش و درکی در این زمینه ندارند، مناسب است.

این نرم افزار پیام رسان با استفاد از زبان برنامه نویسی سی شارپ و تکنولوژی WPF ایجاد شده است. هدف از ایجاد این نرم افزار آموزش نحوه برنامه نویسی سوکت در سی شارپ و استفاده از کلاس TcpListener و TcpClient بوده است. این سورس کد برای آن دسته از افرادی که اطلاعات پایه را در زمینه برنامه نویسی Socket دارند و قصد دارند موارد جدید و پیشرفته تری در این حوزه یاد بگیرند، مناسب است.

شما با مشاهده سورس کد این پروژه می توانید نحوه ارتباط برقرار کردن با سرور، ارسال بسته به سرور، ارسال شیء از طریق سوکت، رمزگذاری و رمزگشایی بسته ها، نحوه احراز هویت کاربران را یاد بگیرند.

ساختار پروژه

  • Messenger.Client
  • Messenger.Client.UI
  • Messenger.Security
  • Messenger.Server
  • Messenger.Server.UI
  • Messenger.Shared

پروژه Messenger.Client

این پروژه شامل منطق برنامه کلاینت و سرویس هایی برای هندل کردن ارتباط کلاینت با نرم افزار سرور است. ساختار فایل ها و پوشه های این اسمبلی:

  • [DIR] Arguments
    • [C#] ChatPacketEventArgs.cs
    • [C#] LoginResponseEventArgs.cs
    • [C#] UsersListResponseEventArgs.cs
  • [DIR] Tcp
    • [C#] ITcpClientProvider.cs
    • [C#] TcpClientProvider.cs
  • [C#] Transport.cs

پروژه Messenger.Client.UI

این پروژه مربوط به ظاهر نرم افزار Client است که با WPF و به صورت MVVM طراحی شده است. ساختار فایل ها و پوشه های این اسمبلی:

  • [DIR] Models
    • [DIR] Base
      • [C#] ObservableObject.cs
    • [C#] Chat.cs
    • [C#] User.cs
  • [DIR] Resources
    • [DIR] Config
      • [KEY] Client-Private.key
      • [KEY] Server-Public.key
    • [DIR] Fonts
      • [DIR, FONT FAMILY] Nunito
    • [DIR] Images
      • [JPG] Background.jpg
      • [ICO] Messenger.ico
      • [PNG] Messenger_48x48.png
      • [PNG] Messenger_Original.png
    • [DIR] UI
      • [DIR] Patches
        • [XAML] MaterialDesignTextBox.xaml
        • [XAML] MetroWindow.xaml
        • [XAML] ScrollBar.xaml
      • [DIR] Templates
        • [XAML] ChatsListItemTemplate.xaml
        • [XAML] UsersListItemTemplate.xaml
      • [DIR] Themes
        • [XAML] Dark.xaml
      • [XAML] ListBoxItem.xaml
      • [XAML] Resources.xaml
      • [XAML] Styles.xaml
  • [DIR] Services
    • [C#] AppInfo.cs
    • [C#] ChatManager.cs
    • [C#] Global.cs
    • [C#] Launcher.cs
  • [DIR] ViewModels
    • [DIR] Base
      • [C#] BaseViewModel.cs
      • [C#] RelayCommand.cs
    • [C#] LoginPageViewModel.cs
    • [C#] MainPageViewModel.cs
    • [C#] MainWindowViewModel.cs
  • [DIR] Views
    • [XAML] LoginPage.xaml
    • [C#] LoginPage.xaml.cs
    • [XAML] MainPage.xaml
    • [C#] MainPage.xaml.cs
  • [XAML] App.xaml
  • [C#] App.xaml.cs
  • [XAML] MainWindow.xaml
  • [C#] MainWindow.xaml.cs

پروژه Messenger.Security

این پروژه شامل سرویس هایی برای رمزگذاری و رمزگشایی بسته های با استفاده از الگوریتم های RSA و AES است. ساختار فایل ها و پوشه های این اسمبلی:

  • [DIR] Models
    • [C#] RsaKey.cs
  • [C#] ICryptoEngine.cs
  • [C#] CryptoEngine.cs
  • [C#] IKeyService.cs
  • [C#] KeyService.cs
  • [C#] ISecurityProvider.cs
  • [C#] SecurityProvider.cs

پروژه Messenger.Server

این پروژه شامل منطق برنامه سرور و سرویس هایی برای هندل کردن ارتباط کلاینت ها با یکدیگر است. ساختار فایل ها و پوشه های این اسمبلی:

  • [DIR] Arguments
    • [C#] ChatEventArgs.cs
    • [C#] UserEventArgs.cs
  • [DIR] Tcp
    • [C#] ITcpServerProvider.cs
    • [C#] TcpServerProvider.cs
  • [C#] PacketQueueItem.cs
  • [C#] Transport.cs

پروژه Messenger.Server.UI

این پروژه مربوط به ظاهر نرم افزار Server است که با WPF و به صورت MVVM طراحی شده است. ساختار فایل ها و پوشه های این اسمبلی:

  • [DIR] Models
    • [DIR] Base
      • [C#] ObservableObject.cs
    • [C#] Chat.cs
    • [C#] User.cs
  • [DIR] Resources
    • [DIR] Config
      • [KEY] Client-Public.key
      • [KEY] Server-Private.key
    • [DIR] Images
      • [ICO] Messenger_Server.ico
      • [PNG] Messenger_Server_48x48.png
      • [PNG] Messenger_Server_Original.png
    • [DIR] UI
      • [DIR] Templates
        • [XAML] ChatsListItemTemplate.xaml
        • [XAML] UsersListItemTemplate.xaml
  • [DIR] Services
    • [C#] AppInfo.cs
    • [C#] Global.cs
    • [C#] Launcher.cs
  • [ViewModels]
    • [DIR] Base
      • [C#] BaseViewModel.cs
      • [C#] RelayCommand.cs
    • [C#] MainWindowViewModel.cs
  • [XAML] App.xaml
  • [C#] App.xaml.cs
  • [XAML] MainWindow.xaml
  • [C#] MainWindow.xaml.cs

پروژه Messenger.Shared

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

  • [DIR] Arguments
    • [C#] PacketEventArgs.cs
  • [DIR] Models
    • [DIR] Base
      • [C#] BaseUser.cs
    • [C#] TransportConfig.cs
    • [C#] User.cs
  • [DIR] Packets
    • [DIR] Base
      • [C#] Packet.cs
      • [C#] PacketContainer.cs
      • [C#] Request.cs
      • [C#] Response.cs
    • [C#] ChatPacket.cs
    • [C#] LoginRequest.cs
    • [C#] LoginResponse.cs
    • [C#] LogoutRequest.cs
    • [C#] UsersListRequest.cs
    • [C#] UsersListResponse.cs
  • [DIR] Utilities
    • [DIR] Logger
      • [C#] IFileLogger.cs
      • [C#] FileLogger.cs
      • [C#] LogQueueItem.cs
    • [C#] SocketAssist.cs

بسته های استفاده شده

  • Fody.4.2.1
  • PropertyChanged.Fody.2.6.1
  • MaterialDesignThemes.2.6.0
  • MaterialDesignColors.1.2.0
  • MaterialDesignThemes.MahApps.0.1.0
  • MahApps.Metro.1.6.0
  • ControlzEx.3.0.2.4
  • Newtonsoft.Json.12.0.3

برخی از ویژگی های نرم افزار

  • قابلیت Login/Logout
  • قابلیت ارسال پیام به یک کاربر خاص
  • قابلیت مدیریت چندین کلاینت به طور همزمان
  • دارای رابط کاربری (UI) ساده و زیبا
  • امکان نمایش لیست کاربران آنلاین
  • مدیریت چت های مربوط به هر کاربر
  • استفاده از الگوریتم های RSA و AES برای رمزنگاری بسته های ارسالی بین کلاینت و سرور
  • استفاده از الگوی طراحی MVVM

نکات

  • این نرم افزار با استفاده از نرم افزار Visual Studio 2015 نوشته شده است.
  • نسخه فریم ورک استفاده شده ۴٫۵٫۲ است.

نوشته سورس نرم افزار پیام رسان به زبان سی شارپ اولین بار در سورس سرا - آموزش برنامه نویسی. پدیدار شد.

درباره نویسنده: administrator

ممکن است دوست داشته باشید

دیدگاهتان را بنویسید

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