Socket در سی شارپ

برای کار با Socket نیاز هست تا شما یک Socket در سمت کلاینت باز کنید و یک Socket در سرور. Socket در سی شارپ هم از این قاعده مستثنی نیست.
برای کار با Socket، همیشه در سمت سرور باید به آن Socket گوش داده شود تا وقتی از کلاینت داده ارسال می شود، داده را دریافت و دوباره به همان Socket باز شده اطلاعات را بفرستد.

Socket در سی شارپ

برای تبادل داده با Socket نیاز است تا داده ها تبدیل به آرایه ای از byte شوند.
برای استفاده از Socket باید فضانام System.Net.Sockets را اضافه کنید.
آی پی سرور و پورتی که Socket باید به آن متصل شود را مشخص می کنید.
وقتی اطلاعات دریافت شود در متغیر byte ریخته می شود.
در کد زیر یک رشته متشکل از Id و Number و quantity برای سرور ازسال می خواهد شد که در خط ۱۹ تبدیل به آرایه ای از بایت ها می شود.
در خط ۲۳ یک Socket ساخته می شود که پارامترهای آن به شرح زیر است:

  • AddressFamily : شبکه ای که سوکت از آن استفاده می کند.
  • SocketType : نوع سوکت است که یک طرفه و دوطرفه بودن آن را تعیین می کند.
  • ProtocolType : نوع پروتکل استفاده را بیان می کند.
  • پس از ساخت Socket آن را در خط ۲۶ به آی پی و پورت مشخص شده کانکت می کنیم و در خط ۲۷ داده ها ارسال می شود.
    پس از ارسال داده ها، در خط ۲۹ داده ها دریافت می شود و در متغیر byte قرار می گیرد.
    در کدهای زیر سوکت به یک آی پی با پورت مشخص باز می شود و اطلاعات را ارسال و دریافت می کند. این عمل هر ۱۵ دقیقه یک بار انجام می شود.

    برای اطلاعات بیشتر در مورد متدهای استفاده شده می توانید از لینک های زیر استفاده کنید:

    Encoding.UTF8.GetBytes
    Socket
    AddressFamily
    SocketType
    ProtocolType
    socket.Connect
    SocketFlags
    socket.Receive

    استفاده از JSON در سی شارپ

    در این نوشته ابتدا به معرفی کوتاه JSON می پردازم و سپس روش استفاده از JSON در سی شارپ را مورد بررسی قرار می دهم.

    JSON چیست؟
    یکی از روش های تبادل اطلاعات XML هست. این روش تبادل اطلاعات خوب هست اما با JSON اطلاعات کم حجم تر و خواناتر می شوند.
    در واقع JSON یک رشته است که داده های آن با علائم خاصی از هم جدا شده اند. یک رشته JSON مانند زیر است:

    رشته XML متناظر با JSON بالا به شکل زیر است:

    برای اطلاعات تکمیلی به ^ و ^ و ^ مراجعه کنید.

    استفاده از JSON در سی شارپ


    یکی از بهترین کتابخانه های موجود برای بکارگیری JSON در دات نت، کتابخانه Json.NET هست که هم از طریق سایت Newtonsoft و هم از طریق NuGet با دستور زیر قابل دسترسی هست:

    با استفاده از کد های زیر یک دستوری را به سرور فرستاده و سپس جواب آن را که یک رشته هست، تبدیل به JSON می کنم تا بتوان متوجه شد سرور چه پاسخی ارسال کرده است.
    در تابع زیر یک دستور ساخته می شود و پس از آن تابع ConvertStringToJson که رشته JSON را تبدیل به یک JSON Object می کند، صدا زده می شود.

    در کد بالا، با استفاده از دو خط زیر، یک شیی JSON را ساخته و به راحتی مقدار آن را در یک شرط قرار دادیم.

    CustomJsonParser.ConvertStringToJson که وظیفه اش ارسال دستور به کلاس FetchInternetData و تبدیل پاسخ دریافتی به JSONObject است به صورت زیر می باشد:

    تابع RequestAndResponseData برای دریافت و ارسال داده ها به سرور می باشد:

    در نوشته های بعدی قصد دارم چگونگی تبدیل JSON به DataTable برای نمایش داده ها در DataGridView را شرح دهم.

    تعیین سطح دسترسی (UAC) اپلیکیشن

    در بسیاری از برنامه نیاز به سطح دسترسی بالاتری برای دسترسی به فایل ها و فولدرها و رجیستری ویندوز هست. به عنوان مثال با استفاده از Environment.SpecialFolder.MyDocuments می توان به فولدر Document ویندوز دسترسی پیدا کرد. در ویندوز ۷ و ویستا، یک لایه برای کنترل سطح دسترسی (UAC) اضافه شده است. به همین دلیل است که قبل از اجرای بسیاری از برنامه ها، ویندوز از شما سوال می کند که می خواهید برنامه اجرا شود یا خیر. وقتی پرژه تمام می شود پس از ساخت Setup و نصب آن در سیستم مشتری اگر از کدهای استاندارد مانند Path.Combine استفاده نشده باشد، قبل از اجرا، خطای سطح دسترسی داده می شود و برنامه بسته می شود. برای رفع این مشکل باید تغییراتی در فایل manifest.xml برنامه داد. اگر این فایل در پروژه شما وجود ندارد بر روی پروژه کلیک راست کنید و از منوی Add، گزینه Add New Item را انتخاب کنید. به زیر مجموعه General بروید و Application Manifest File را انتخاب کنید. پس از اینکه فایل ساخته شد، آن را باز کنید. کدها به صورت زیر است:

    تگی که ما به آن نیاز داریم، تگ requestedPrivileges است. در این تگ یک تگ دیگر به نام requestedExecutionLevel وجود دارد که خاصیت level آن، تعیین کننده سطح دسترسی است. اگر آن را بر روی requireAdministrator تنظیم کنید، قبل از اجرای برنامه ویندوز از کاربر درخواست تایید سطح دسترسی می کند و برنامه به طور درست اجرا می شود.
    برای اطلاعات بیشتر می توانید به (^) مراجعه کنید.