آموزش برنامه‌نویسی سوکت TCP/IP در C# .Net برای برنامه‌نویسان و دانشجویان - آخرین آپدیت

دانلود TCP/IP Socket Programming in C# .Net For Coders & Students

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

آموزش شبکه و سوکت نویسی با TCP در C# .Net

با استفاده از کتابخانه سوکت TCP/IP در سی شارپ (C#) نمونه هایی در WinForms با async/await

آموزش مقدماتی و پیشرفته برنامه نویسی سوکت TCP/IP با async/await در C# .Net

با شرکت در این دوره آموزشی، درک کاملی از چگونگی ارتباط برنامه‌های شبکه در C# .Net کسب خواهید کرد.

برنامه نویسی شبکه با استفاده از فضاهای نام شبکه در فریمورک دات نت در سی شارپ

شبکه نویسی در C#

پیش‌نیازها

  • زبان برنامه نویسی C# .Net، با مهارت‌های پایه
  • نیاز به مایکروسافت ویژوال استودیو 2015، 2017 یا بالاتر برای نوشتن کد async در C# .Net
  • یک کامپیوتر متصل به شبکه (اترنت یا وای‌فای) که قادر به اجرای .Net باشد.

آموزش شبکه و برنامه نویسی سوکت در C# .Net با استفاده از TCP

با استفاده از سوکت‌های جریانی TCP/IP در برنامه نویسی سوکت شبکه کامپیوتر مهارت پیدا کنید و یک برنامه‌نویس حرفه‌ای‌تر شوید. این دوره آموزشی شما را با برنامه نویسی شبکه TCP IP با کتابخانه سوکت سی شارپ دات نت و دات نت به سرعت آشنا می‌کند.

هر ویدیو در این دوره، یک مفهوم ضروری از برنامه نویسی سوکت کلاینت-سرور و ارتباطات شبکه را پوشش می‌دهد. نمونه کدهای C# آماده‌ی استفاده در قالب راه حل ویژوال استودیو برای دانلود ارائه شده‌اند. پس از هر چند درس، یک دموی عملی، پیاده سازی مفاهیم ذکر شده در قبل را به شما نشان می‌دهد.

در پایان این دوره، قادر خواهید بود نرم‌افزارهای C# (شارپ) .Net را بسازید که قادر به ارسال و دریافت داده از طریق سوکت‌های TCP/IP به صورت همتا به همتا با کلیدواژه‌های async و await هستند. شما نه تنها برنامه نویسی سوکت، بلکه کلمات کلیدی async/await را نیز خواهید آموخت. این دوره شما را به یک برنامه‌نویس بهتر تبدیل خواهد کرد.

TCP/IP یک مجموعه پروتکل است که ارتباط قابل اعتماد و سر به سر را از طریق اینترنت فراهم می‌کند. این پروتکل یک لایه در مدل OSI نیست، بلکه چندین لایه از جمله لایه شبکه (لایه ۳) و لایه انتقال (لایه ۴) را پوشش می‌دهد. مجموعه پروتکل TCP/IP برای کار بر روی زیرساخت شبکه موجود طراحی شده است و به فناوری‌های مختلف شبکه اجازه می‌دهد با یکدیگر ارتباط برقرار کنند. اگرچه TCP/IP به طور کامل در مدل OSI جای نمی‌گیرد، اما به طور گسترده‌ای مورد استفاده قرار می‌گیرد و در شبکه‌های مدرن حیاتی است.

چرا باید این دوره را بگذرانید؟

اگر یک حرفه‌ای (یا دانشجو) هستید که تجربه کدنویسی قبلی داشته‌اید اما درک درستی از نحوه کارکرد شبکه‌های کامپیوتری در سطح نرم‌افزار (چه در C#، جاوا، یا C++) ندارید، باید این دوره را بگذرانید.

تکنیک‌های ارزشمندی را در سناریوهای واقعی که معمولاً برنامه‌نویسان با آن‌ها روبرو می‌شوند، خواهید آموخت.

بسیاری از دانشجویان دوره‌های دانشگاهی برنامه نویسی توزیع شده در گذشته این دوره را گذرانده‌اند و نظرات مثبتی در بازنگری‌ها ثبت کرده‌اند. آن‌ها پس از مشاهده این دوره توانسته‌اند تکالیف خود را به سرعت و به تنهایی کامل کنند. این بهترین دوره برنامه نویسی سوکت در یودمی است.

بخش اول رایگان است و حاوی اطلاعات مفیدی است که هر کسی، صرف نظر از آشنایی با C#.Net، می‌تواند از آن بهره‌مند شود.

حداقل تئوری مقدماتی

بسیاری از دوره‌ها تمایل دارند تئوری را قبل از کدنویسی واقعی انباشته کنند. این دوره رویکرد "حداقل تئوری در ابتدا" را اتخاذ می‌کند.

شما اصول اولیه برنامه نویسی شبکه را یاد می‌گیرید و در کمتر از ۱۵ دقیقه شروع به نوشتن کد C# خواهید کرد.

استفاده از Windows Forms و کتابخانه کلاس

برنامه نویسی سوکت TCP IP در C# شارپ در ویندوز تمرکز این دوره است. به عنوان مثال، این دوره از یک پروژه کتابخانه کلاس در C# برای نمایش برنامه‌های کلاینت/سرور در WinForms استفاده خواهد کرد. این رویکردی متفاوت از بسیاری از دوره‌های دیگر است که از پروژه‌های خط فرمان استفاده می‌کنند. متدولوژی تدریس من این دوره را بسیار کمتر خسته کننده، غیر آکادمیک، از نظر عملی سودمند و مناسب برای متخصصان می‌سازد.

کوتاه، مفید و مختصر

کل دوره با در نظر گرفتن متخصصان پرمشغله طراحی شده است و ویدیوها برای مفید و آسان کردن تجربه یادگیری آنلاین شما ساخته شده‌اند. این آموزش مبتنی بر پروژه است.

برنامه نویسی ناهمزمان (Asynchronous) با کلمات کلیدی async/await، یک راه حل مدرن و واقعی

کلمات کلیدی async/await در سی شارپ ۵.۰ معرفی شدند. در سناریوهای سنتی برنامه نویسی سوکت، (چند) نخ‌ها یک سرور یا کلاینت پاسخگو ایجاد می‌کنند. من از این مسیر اجتناب کرده‌ام و به شما نشان داده‌ام که چگونه مستقیماً از سوکت‌های ناهمزمان استفاده کنید. ابتدا توضیح می‌دهم که کلمات کلیدی async/await چه هستند. سپس نشان می‌دهم چگونه از آن‌ها برای ورودی/خروجی شبکه غیر مسدود کننده استفاده کنیم. این بخش از پازل کلید برنامه‌های سازمانی با ترافیک بالا است.

یادگیری تقویت شده

هر بخش شامل یک آزمون در پایان است که برای اطمینان از مرور و یادآوری اطلاعات ضروری ارائه‌شده در بخش مربوطه بسیار مفید است.

به یک جامعه فعال بپیوندید.

به جامعه برنامه‌نویسانی که قبلاً این دوره را گذرانده‌اند، بپیوندید. دانشجویان همکار شما به سوالات شما پاسخ خواهند داد و همچنین مدرس دوره. مکانی عالی برای شروع یادگیری!

چیز جدیدی یاد بگیرید

سوکت‌ها موضوعی پیشرفته و به عبارتی منطقه خطر در اصطلاح برنامه‌نویسی تلقی می‌شوند. با این حال، دانستن آن به این معنی است که شما به شغل خود جدی هستید.

برنامه نویسی شی گرا (OOP)

این دوره به شما می‌آموزد که چگونه با استفاده از اصول OOP یک برنامه توزیع شده ایجاد کنید. شما با پیاده سازی مدل ناشر/مشترک مبتنی بر کلاس‌های EventHandler، شکاف بین کتابخانه کلاس بک‌اند C#.Net و برنامه فرانت‌اند WinForms را پر خواهید کرد. این دوره همچنین به شما نشان می‌دهد که هندلر رویداد (Event Handlers) چیستند و چگونه رویداد خود را ایجاد کنید.

پاداش (Bonus)

همچنین یاد خواهید گرفت که چگونه یک نام میزبان (hostname) را با استفاده از کلاس System.Net.DNS به یک آدرس IP تبدیل کنید. همچنین از طریق tryparse و try/catch بررسی‌های اعتبارسنجی مختلفی را پیاده‌سازی خواهید کرد.

برای کار بر روی این دوره نیازی به یادگیری C ندارید.

چند نکته کلیدی در مورد برنامه نویسی سوکت TCP/IP در C# وجود دارد که باید به خاطر داشته باشید. اول و مهمتر از همه، درک اصول کار سوکت‌ها و نحوه استفاده از آن‌ها برای برقراری ارتباطات شبکه بین برنامه‌ها مهم است. در سی شارپ، می‌توانید از کلاس Socket برای انجام وظایف برنامه نویسی سوکت و تعامل با سوکت‌های شبکه استفاده کنید. این کلاس طیف وسیعی از متدها و خصوصیات را فراهم می‌کند که به شما امکان ایجاد، اتصال، ارسال و دریافت داده از سوکت‌ها را می‌دهد. با درک قوی از کلاس Socket و عملکرد آن، می‌توانید برنامه‌های شبکه قوی و قابل اعتماد بسازید که به طور یکپارچه با سایر برنامه‌ها از طریق اینترنت ارتباط برقرار می‌کنند.

TCP/IP یا پروتکل کنترل انتقال/پروتکل اینترنت، پروتکل اصلی مورد استفاده برای ارتباط در اینترنت است. در اینجا برخی از مزایا و معایب استفاده از TCP/IP آورده شده است:

مزایای سوکت‌های TCP/IP:

  • TCP/IP یک پروتکل با پذیرش گسترده است، به این معنی که با بسیاری از دستگاه‌ها و شبکه‌های مختلف سازگار است.
  • این یک پروتکل قابل اعتماد است که اطمینان حاصل می‌کند داده‌ها با دقت و به ترتیب صحیح منتقل می‌شوند.
  • TCP/IP می‌تواند حجم زیادی از داده را مدیریت کند و آن را برای استفاده با برنامه‌های پهنای باند بالا مانند پخش ویدئو مناسب می‌سازد.

معایب سوکت‌های TCP/IP:

  • TCP/IP می‌تواند کند باشد، به خصوص در مقایسه با پروتکل‌های دیگر مانند UDP.
  • این پروتکل به طور خاص امن نیست، به این معنی که داده‌های منتقل شده با استفاده از TCP/IP مستعد رهگیری و دستکاری هستند.
  • TCP/IP نسبتاً پیچیده است، به این معنی که پیاده‌سازی و نگهداری آن می‌تواند دشوار باشد.

این دوره مربوط به سوکت جاوا، سوکت پایتون و UDP است.


سرفصل ها و درس ها

نظریه بنیادین شبکه‌بندی برای برنامه‌نویسی سوکت Essential Networking Theory For Socket Programming

  • مقدمه‌ای بر برنامه‌نویسی سوکت TCP/IP در C# .Net با استفاده از ویژوال استودیو Introduction to TCP/IP socket programming in C# .Net using Visual Studio

  • دانلود سورس کد Downloading Source Code

  • میزبان در شبکه کامپیوتری - ملزومات شبکه The Host In Computer Network - Networking Essentials

  • آدرس IP در شبکه کامپیوتری - ملزومات شبکه IP Address In Computer Network - Networking Essentials

  • میزبان در شبکه کامپیوتری - مبانی شبکه‌بندی The Host In Computer Network - Networking Essentials

  • اعداد پورت در برنامه نویسی سوکت شبکه کامپیوتری - ملزومات شبکه Port Numbers In Computer Network Socket Programming- Networking Essentials

  • آدرس IP در شبکه کامپیوتری - مبانی شبکه‌بندی IP Address In Computer Network - Networking Essentials

  • شماره پورت‌ها در برنامه‌نویسی سوکت شبکه کامپیوتری - مبانی شبکه‌بندی Port Numbers In Computer Network Socket Programming- Networking Essentials

  • مدل کلاینت/سرور همانطور که در سوکت های جریان TCP/IP استفاده می شود - ملزومات شبکه Client/Server Model as used in TCP/IP Stream Sockets - Networking Essentials

  • ابزار سرویس گیرنده Telnet - Networking Essentials را فعال کنید Enable the Telnet client utility - Networking Essentials

  • مدل کلاینت/سرور همانطور که در سوکت‌های استریم TCP/IP استفاده می‌شود - مبانی شبکه‌بندی Client/Server Model as used in TCP/IP Stream Sockets - Networking Essentials

  • فعال کردن ابزار کاربر کلاینت Telnet - مبانی شبکه‌بندی Enable the Telnet client utility - Networking Essentials

  • دانش ملزومات شبکه خود را آزمایش کنید Test your Networking Essentials knowledge

  • دانش مبانی شبکه‌بندی خود را امتحان کنید Test your Networking Essentials knowledge

برنامه‌نویسی سوکت در C# برای مبتدیان Socket Programming in C# For Beginners

  • راه‌اندازی پروژه C# .Net برای برنامه‌نویسی سوکت TCP/IP سمت سرور در ویژوال استودیو Server Side TCP/IP Socket Programming C# .Net Project Setup in Visual Studio

  • دمو - پذیرش اتصالات ورودی روی سوکت در C# .Net با استفاده از کلاینت Telnet Demo - Accept Incoming Connections on Socket in C# .Net Using Telnet Client

  • دریافت داده روی سوکت TCP/IP در C# .Net Receive Data on a TCP/IP Socket in C# .Net

  • استفاده از Encoding.ASCII.GetString برای تبدیل بایت به رشته برای انتقال سوکت Using Encoding.ASCII.GetString to Convert Bytes To String for socket transfer

  • برنامه‌نویسی سوکت: ارسال داده روی سوکت TCP/IP در C# .Net Socket Programming: Send Data on a TCP/IP Socket in C# .Net

  • دموی نمونه برنامه‌نویسی سوکت - ارسال و دریافت داده روی سوکت‌های TCP/IP در C# Socket Programming Example Demo - Send and Receive Data on TCP/IP Sockets in C#

  • دمو - ارتباط بین برنامه دسکتاپ C# و برنامه اندروید، پیکربندی فایروال ویندوز Demo - Communicate between C# desktop & Android app, configure Windows Firewall

  • مقدمه‌ای بر برنامه‌نویسی سوکت TCP/IP سمت کلاینت در C# .Net Introduction to Client Side TCP/IP Socket Programming in C# .Net

  • راه‌اندازی پروژه VS برنامه‌نویسی سوکت سمت کلاینت، با استفاده از متدهای Connect، TryParse Client Side Socket Programming VS Project Setup, using methods Connect, TryParse

  • فراخوانی‌های Socket.Send() و Socket.Receive() در سوکت TCP/IP سمت کلاینت در C#.Net Socket.Send() & Socket.Receive() Calls On Client Side TCP/IP Socket in C#.Net

  • دمو - اجرای برنامه‌های شبکه کلاینت و سرور TCP/IP، بهبود سرور Demo - Run TCP/IP Client & Server network programs, improve Server

  • نحوه پاکسازی یک برنامه کنسولی برای بستن صحیح سوکت TCP/IP How to cleanup a console application for properly closing the TCP/IP Socket

  • خلاصه بخش Section Summary

  • مقدمه‌ای بر برنامه‌نویسی سوکت در C# .Net Introduction to socket programming in C# .Net

برنامه‌نویسی سوکت ناهمزمان TCP/IP سرور با کلیدواژه‌های async & await در C# TCP/IP Server Asynchronous Socket Programming With async & await Keywords in C#

  • مقدمه بخش: برنامه‌نویسی سوکت ناهمزمان با async await در C# .Net Section Intro: Asynchronous socket programming with async await in C# .Net

  • مثال: اشکال I/O همزمان در C# .Net Example: Disadvantage of synchronous I/O in C# .Net

  • پذیرش اتصال TCPClient به صورت ناهمزمان با کلیدواژه await در C# Accepting a TCPClient Connection Asynchronously with await keyword in C#

  • دمو: پذیرش TCPClient به صورت ناهمزمان Demo: Accept TCPClient Asynchronously

  • پذیرش مداوم اتصالات کلاینت، مدیریت خطا در متد async C# Continuously Accept Client Connections, Exception Handling in C# async Method

  • استفاده از System.Net.Socket.NetworkStream & StreamReader برای خواندن داده از کلاینت Use System.Net.Socket.NetworkStream & StreamReader to read data from client

  • دمو: خواندن داده روی Network Stream و پذیرش بی‌نهایت به صورت ناهمزمان در C#.Net Demo: Read Data On Network Stream and Endless Accept async in C#.Net

  • نحوه مدیریت چندین کلاینت شبکه روی سرور در C# .Net How to Handle Multiple Network Clients on Server in C# .Net

  • دمو: ارسال داده به چندین کلاینت شبکه از لیست به یکباره، متد SendAll Demo: Send Data to Multiple Network Clients from List at Once, SendAll Method

  • نحوه توقف گوش دادن به اتصالات جدید و بستن صحیح سوکت‌های کلاینت How to Stop Listening for New Connections and Disconnect Client Sockets Properly

  • دمو: فراخوانی‌های TcpListener.Stop و TcpClient.Close برای توقف سرور Demo: TcpListener.Stop and TcpClient.Close Calls to Stop Server

  • خلاصه بخش: برنامه‌نویسی سوکت ناهمزمان سمت سرور TCP/IP در C# .Net Section Summary: TCP/IP Server Side Asynchronous Socket Programming in C# .Net

برنامه‌نویسی سوکت ناهمزمان سمت کلاینت Async Client Side Socket Programming

  • راه‌اندازی پروژه ناهمزمان سمت کلاینت سوکت در ویژوال استودیو C# Client side async socket Visual Studio C# project setup

  • برنامه‌نویسی سوکت کلاینت با استفاده از کلیدواژه async در C#.Net Client Socket Programming using async keyword in C#.Net

  • ایجاد یک برنامه کنسولی و اضافه کردن ارجاع کتابخانه سوکت C# Creating a console application and adding C# socket library reference

  • خواندن داده از استریم شبکه سوکت TcpClient با ReadAsync در C# .Net Reading data from TcpClient socket network stream with ReadAsync in C# .Net

  • دمو: برنامه‌نویسی سوکت TCP/IP ناهمزمان سمت کلاینت در C# .Net Demo: Async Client side TCP/IP socket programming in C# .Net

  • نوشتن داده روی سوکت کلاینت با StreamWriter در C# .Net Writing data on the a client socket with StreamWriter in C# .Net

  • دمو: نوشتن داده روی استریم شبکه TcpClient با StreamWriter در C#.Net Demo: Write data on TcpClient network stream with StreamWriter in C#.Net

  • بستن اتصال روی TcpClient برای برنامه‌نویسی سوکت در C# .Net Close Connection on TCPClient for socket programming in C# .Net

  • دمو: بستن اتصال روی TcpClient برای برنامه‌نویسی سوکت در C# .Net Demo: Closing connection on TcpClient for socket programming in C# .Net

  • خلاصه بخش: برنامه‌نویسی سوکت ناهمزمان سمت کلاینت در C# .Net با async/await Section Summary: Async client socket programming in C# .Net with async/await

استفاده از مدل Publisher Subscriber برای افزودن رویدادها به کتابخانه سوکت در C# .Net Using Publisher Subscriber Model To Add Events for socket library in C# .Net

  • مقدمه‌ای بر مدل pub/sub و رویدادها/نماینده‌ها (delegates) در C#.Net Introduction to pub/sub model and events/delegates in C#.Net

  • اضافه کردن رویداد ClientConnected به کتابخانه سوکت سرور در C# .Net Adding a ClientConnected event to the server socket library in C# .Net

  • اضافه کردن رویداد TextReceived در سمت سرور به کتابخانه سوکت در C# .Net Adding a TextReceived event on the server to socket library in C# .Net

  • انتشار رویداد TextReceived در سمت کلاینت به کتابخانه سوکت در C# .Net Publishing event TextReceived on client to socket library in C# .Net

  • کد منبع C# رویدادهای اضافی Additional Events C# Source Code

برنامه‌نویسی سوکت: موضوعات مفید اضافی در C# .Net Socket Programming: Additional Helpful Topics in C# .Net

  • یافتن آدرس IP و نام میزبان (Hostname) کامپیوتر ویندوزی شما از طریق Command Prompt Finding IP Address & Hostname of Your Windows PC from Command Prompt

  • نقش DHCP و DNS در شبکه کامپیوتری Role of DHCP and DNS in a Computer Network

  • تبدیل نام میزبان به آدرس IP با استفاده از System.Net.DNS برای برنامه‌نویسی سوکت C# Resolving Hostname to IP Address Using System.Net.DNS for socket programming C#

  • دمو: تبدیل نام میزبان با کلاس System.Net.DNS در C# .Net Demo: Resolving Hostname with System.Net.DNS Class in C# .Net

  • نحوه استفاده از StreamReader.ReadLineAsync و StreamWriter.WriteLineAsync در C# .Net How to use StreamReader.ReadLineAsync and StreamWriter.WriteLineAsync in C# .Net

  • نکته اضافی: برنامه‌نویسی سوکت UDP در C# .Net Bonus: UDP Socket Programming in C# .Net

بخش منسوخ شده: ایجاد یک سرور سوکت TCP/IP Deprecated Section: Creating a TCP/IP socket server

  • راه‌اندازی پروژه در ویژوال استودیو Setting up the project in Visual Studio

  • آماده‌سازی TCPListener Preparing a TCPListener

  • گوش دادن به درخواست‌های اتصال ورودی Listening for incoming connection requests

  • دمو، درخواست‌های اتصال ورودی Demo, incoming connection requests

  • به دست آوردن یک شیء TCPClient Getting hold of a TCPClient object

  • خواندن داده از استریم شبکه TCPClient Reading data from a TCPClient network stream

  • دمو، خواندن داده Demo, reading data

  • نوشتن داده روی استریم شبکه TCPClient Writing data to a TCPClient network stream

  • دمو، نوشتن داده Demo, writing data

  • ایجاد یک سرور TCP/IP Creating a TCP/IP Server

بخش منسوخ شده: ایجاد یک کلاینت سوکت TCP/IP Deprecated Section: Creating a TCP/IP socket client

  • راه‌اندازی پروژه برای کلاینت سوکت در ویژوال استودیو Setting up the project for socket client in Visual Studio

  • اتصال به یک سرور سوکت TCP/IP در C# .Net Connect to a TCP/IP socket server in C# .Net

  • ارسال داده به یک سرور سوکت TCP/IP Send data to a TCP/IP socket server

  • دمو، اتصال به سرور سوکت TCP/IP و ارسال داده Demo, connect to TCP/IP socket server and send data

  • دریافت داده از یک سرور Receiving data from a server

  • دمو، دریافت داده از سرور Demo, receiving data from server

بخش منسوخ شده: موضوعات رایج برنامه‌نویسی شبکه Deprecated Section: Common Network Programming Topics

  • درک و استفاده از آدرس Loop-back Understanding and Using Loop-back Address

  • یافتن آدرس IPv4 با استفاده از کد Finding IPv4 Address using Code

  • مدیریت درخواست‌های اتصال بیش از یک کلاینت روی سرور Handling more than one clients connection requests on server

  • نکته اضافی: نگهداری لیستی از کلاینت‌ها برای مدیریت چندین کلاینت روی سرور شما Bonus: Maintaining a list of clients to handle multiple clients on your server

  • نکته اضافی: دمو - مدیریت چندین کلاینت روی سرور TCP/IP Bonus: Demo - Handling multiple clients on TCP/IP server

  • گوش دادن به اتصالات ورودی روی آدرس IP "Any" Listen for incoming connections on "Any" IP Address

نمایش نظرات

آموزش برنامه‌نویسی سوکت TCP/IP در C# .Net برای برنامه‌نویسان و دانشجویان
جزییات دوره
4.5 hours
74
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
11,847
4.4 از 5
دارد
دارد
دارد
Naeem Akram
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Naeem Akram Naeem Akram

Test Engineer Sr.I am A person with many talents and interests, ranging from gardening to programming and poetry to cooking. Right now I'm working as a Software Test Engineer. On my job I use Microsoft Coded UI, Selenium, and Appium for creating test automation scripts. It is also a part of my job to maintain these automation scripts and run them via CI/CD using TFS. Apart from teaching, I'm also learning how actively on Udemy and my core interests are Azure Devops. I've been writing computer software code(C++, C# .Net) since 2006, creating awesome Android apps since 2012. I've been working as a freelance software developer since Nov. 2012. I've extensively worked on network communications, computer telephony integration(CTI) using Microsoft TAPI 2.x and 3.x, and LDAP server programming(Active Directory). Android app development has been my focus as a freelancer, I've created and published several apps for clients and a couple for myself on Google Play store.