fekre-bekr,learning,source,سورس,سورس رایگان,آموزش,اخبار,فناوری اطلاعات,mvc,.net,ساری,آموزشگاه,asp.net,c#.net,programing,c++,vb,آموزش برنامه نویسی,دانلود

اشتراک در سایت


مطالب تصادفی
اخبار و مقالات در فکر بکر آشنایی با SignalR در Asp.net core

در این آموزش به ساخت یک برنامه real-time با استفاده از SignalR در Asp.net core 2.1 خواهیم پرداخت. ...


اخبار و مقالات در فکر بکر حل تمرین مسائل برنامه نویسی از بخش کلاس ها در سی شارپ

جهت مشاهده سوال و دانلود سورس آن لطفا به ادامه مطلب توجه نمایید. ...


اخبار و مقالات در فکر بکر آموزش ایجاد Tag Helper سفارشی در Asp.net core

Tag Helper یکی از ویژگیهای جدید در Asp.net Core MVC می باشد.در این آموزش شما میتوانید با استفاده از کلاسهای C# قالب عناصر html ...


اخبار و مقالات در فکر بکر استفاده از Google Map در Asp.net

در این مقاله میخواهیم به نحوه ی پیاده سازی امکانات Google Maps برای یافتن موقعیت هر مکانی در Asp.net بپردازیم. ...


اخبار و مقالات در فکر بکر آموزش اعتبار سنجی غیر همزمان(AsyncValidation) با استفاده از جاوااسکریپت در Asp.net mvc

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


اخبار و مقالات در فکر بکر آموزش دستورات کاربردی در SQL

با سلام خدمت کاربران فکر بکر - جهت دانلود این آموزش به ادامه مطالب مراجعه نمایید ...


اخبار و مقالات در فکر بکر آموزش استفاده از PersianDateTimePicker (تقویم فارسی) در برنامه های تحت وب

با سلام - در این مقاله به آموزش نحوه استفاده از کنترل PersianDateTimePicker(تقویم فارسی) در برنامه های تحت وب می پردازیم ...


اخبار و مقالات در فکر بکر آموزش استفاده از تابع Contains در عبارات lambda برای انواع مدلها

تابع Contains برای بررسی یک مقدار در یک مجموعه مورد استفاده قرار میگیرد اما نحوه استفاده این تابع برای مدلها نسبت به انواع اولیه ...


اخبار و مقالات در فکر بکر حل تمرین مسائل برنامه نویسی از بخش کنترل ها (Windows Form) در سی شارپ

جهت مشاهده سوال و دانلود سورس آن لطفا به ادامه مطلب توجه نمایید. ...


اخبار و مقالات در فکر بکر آموزش عملیات CRUD با استفاده از Ragor Pages در Asp.net Core2.0

در این مقاله به آموزش عملیات CRUD که همان چهار عملیات اصلی (درج – حذف – بروزرسانی و انتخاب رکوردها ) می باشد را در محیط Asp.net c ...


اخبار و مقالات در فکر بکر آموزش استفاده از Grid mvc در Asp.net mvc

در این مقاله به آموزش نمایش داده ها با استفاده از Grid MVC با قابلیت مرتب سازی داده ها خواهیم پرداخت. ...


اخبار و مقالات در فکر بکر قالب پنل ادمین

جهت دانلود قالب پنل مدیریتی به ادامه مطلب مراجعه نمایید ...


اخبار و مقالات در فکر بکر استفاده از AutoMapper در C #

با سلام – در این مقاله قصد دارم کلاس کاربردی AutoMapper را به شما کاربران فکر بکر معرفی کنم. ...


اخبار و مقالات در فکر بکر آموزش استفاده از Log4net در Asp.net 5

در این آموزش به نحوه استفاده از Log4net جهت بررسی خطاهای ایجاد شده خواهیم پرداخت . ...


پیوندها
4.8 (56)

در این برنامه با استفاده از Socket و پروتکل UDP دو برنامه جهت ارسال و دریافت پیام بصورت دوطرفه ایجاد میکنیم. لطفا به ادامه مطلب توجه نمایید.
گروه : برنامه نویسی سوکت
تاریخ انتشار: 1395/11/22

فکر بکر

در این برنامه با استفاده از Socket و پروتکل UDP دو برنامه جهت ارسال و دریافت پیام بصورت دوطرفه ایجاد میکنیم. لطفا به ادامه مطلب توجه نمایید.

در صورتیکه نیاز به توضیح کلاسهای مرتبط به برنامه نویسی تحت شبکه دارید پیشنهاد میکنم این قسمت را مطالعه کنید.

پروژه ای با نام ChatSocket1 از نوع ویندوزی ایجاد کنید و فرم آن را بشکل زیر طراحی نمایید.

socket programming(چت)

 

سپس فضای نامهای زیر را به برنامه اضافه نمایید.

using System.Net;

using System.Net.Sockets;

using System.Threading;

ما در این برنامه جهت ارسال و دریافت پیام از پروتکل  UDP استفاده میکنیم بنابراین با استفاده از کلاس Socket و پروتکل UDP بستر برنامه کاربردی را جهت ارتباط دوطرفه با سیستمهای دیگر را  پیاده سازی میکنیم. 

Socket so1;

        public Form1()

        {

            so1 = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

            InitializeComponent();

        }

نکته : ما در این آموزش از یک سیستم جهت ارتباط دوطرفه استفاده میکنیم لذا در اینصورت شماره پورتهای دو برنامه باید متفاوت باشند. 

همانطور که میبینید در این برنامه از شماره پورت 5050 جهت دریافت اطلاعات استفاده مینماید اما در برنامه ی دومی که ایجاد میکنیم از پورت 5051 استفاده میکنیم.

ادامه کار :

جهت ارسال پیام کدهای زیر  را در رویداد کلیک دکمه مورد نظر درج میکنیم.

byte[] buffer = new byte[2048];

            buffer = Encoding.Unicode.GetBytes(txtMessage.Text);

            so1.SendTo(buffer, new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse("5051")));

همانطور که میبینید پیام به سیستمی که دارای آی پی درج شده در txtIP میباشد و به  پورت شماره 5051 گوش میدهد  ارسال شده است.

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

   public void StartServer()

        {

 

            while (true)

            {

                byte[] buffer = new byte[2048];

                int r = so1.Receive(buffer);

 

                if (r > 0)

                {

                    this.Invoke((MethodInvoker)delegate

                    {

                        lstMessage.Items.Add(Encoding.Unicode.GetString(buffer, 0, r));

                    });

                }

            }

 

        }

سپس کد زیر را جهت اتصال و آماده سازی برنامه برای تبادل پیام در شبکه می نویسیم

  so1.Bind(new IPEndPoint(IPAddress.Parse(txtIP.Text), int.Parse(txtPort.Text)));

            Thread Tr = new Thread(new ThreadStart(StartServer));

            Tr.Start();

با توجه به قطعه کدهای بالا بر نامه ما با آی پی 127.0.0.1 به پورت 5050 وصل میشود.

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

برای ایجاد برنامه دوم شما میتوانید از کدهای نوشته شده در برنامه ChatSocket1 استفاده کنید فقط به این نکته توجه داشته باشید که برنامه دوم جهت اتصال به شبکه در صورتیکه آی پی دو برنامه مشابه هم باشند نباید  دارای شماره پورتهای یکسان نباشند.

شما میتوانید سورسهای برنامه را از قسمت فایلهای ضمیمه شده دریافت نمایید.

شکل خروجی برنامه.

socket_chat

socket_chat

 

*****
|
1397/06/22

سلام ببخشید ما با استفاده از پروتکل udp برنامه نوشتیم. حالا شما فرض کنید که یک پیام از کلاینت به سرور فرستادیم و سرور آن پیام را دریافت نکرد ، پس در این صورت کلاینت از کجا باید بفهمد که سرور پیام را دریافت کرده یا نه؟ میشه برای حل کردن این مشکل (در پروتکل UDP) جه راه حلی را پیشنهاد میدهید؟
محمد مهدوی
|
1397/06/30

این پروتکل (udp) نیازی به اتصال ندارد، به این معنی که یک برنامه می تواند بسته ای از داده ها را به دیگری بفرستد و این می تواند پایان ارتباط باشد.

رویا
|
1397/09/28

سلام خسته نباشید ببخشید ما اگه بخوایم یه برنامه دو طرفه که هم چت داشته باشه و هم ارسال فایل چجوری باید بنویسیم؟ دو تا سوکت باید تعریف کرد واسه هر کدوم ؟ اگه میشه راهنماییم کنید من برنامم اجرا میشه فقط ارور no connection could be made because the target machine actively refused it روی خط sendsocket.connect(iep)میده
محمد مهدوی
|
1397/09/29

سلام - از طریق تلگرام پیام بدید سورس مورد نظر ارسال خواهد شد.

تبسم
|
1397/10/08

سلام من برنامه ای نوشتم که دوتا کلاینت ویه سروره وکلاینتا باهم ارتباط دارند ولی فقط میتونن باهم چت کنن امامیخوام که بتونن عکس هم برای هم بفرستن شما میتونید راهنمایی کنید؟
محمد مهدوی
|
1397/10/09

سلام - مشکلتون در اسال عکس و دریافت عکسه؟

محدثه
|
1397/10/09

منم همین مشکلو دارم

زهرا
|
1398/08/14

سلام من مشابه این برنامه رو میخوام نوشتم یه جا اشکال دارم میتونی بهم کمک کنی

محدثه
|
1397/10/09

سلام من شبیه همین برنامه نوشتم ولی میخوام فایل یا عکس به هم ارسال کنند میشه راهنمایی کنید به شدت نیاز به این قطعه کد دارم
محمد مهدوی
|
1397/10/10

لینک سورس ارسال فایل http://www.fekre-bekr.ir/showdetails.aspx?ID=3179 ارسال عکس در سایت قرار خواهد گرفت

سارا
|
1397/12/20

سلام وقتتون بخیر .من میخوام که چندتا کلاینت باهم صحبت کنن.و یه لیست باکس باشه که هر کس با هر کس دیگه ای که دوس دارد.ابتدا انتخاب و سپس چت کنن.میشه راهنماییم کنید.منون
محمد مهدوی
|
1397/12/25

سلام - شما از ظریق سوکت پروگرمینگ یا وب سوکت میتونید بصورت تحت وب یا ویندوز برنامتونو بنویسید .

Zahra
|
1398/08/14

سلام اگ نوشتی به منم کمک میکنی منم یه برنامه شبیه این لازم دارم🧡🧡🧡

زهرا رازقی
|
1398/08/14

سلام من اگ بخوم یه سرور داشته باشم دوتا کلاینت کدا ک کلاینام با هم ارتباط داشته باشن چ کدی باید بنویسم الان یه سرورو یه کلاینتو خودم نوشتم ارتباطشونم برقراره
محمد مهدوی
|
1398/08/15

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

f4m40N

آموزش کار با کوکی ها (Cookie) در Asp.net core -------- آموزش رمزنگاری فایلها در asp.net core -------- مقایسه واحدهای اندازه گیری rem و em در css -------- آشنایی با مفهوم Generic در C#.net -------- نحوه خواندن اطلاعات از فایل appsetting.json در Asp.net Core -------- آموزش استفاده از CQRS و Mediator در Asp.Net Core -------- نحوه ایجاد image checkbox در html css -------- عملیات crud و WebApi در Asp.net 6 -------- آموزش ایجاد custom model binder در Asp.net core -------- آموزش استفاده از Log4net در Asp.net 5 -------- آموزش پیاده سازی UnitOfWork در Asp.net Core قسمت اول -------- پیاده سازی Repository Pattern بصورت Generic Class -------- وارد کردن فقط حروف فارسی و جلوگیری از ورود حروف فارسی در تکست باکس با استفاده از JQuery -------- سورس استفاده از کامپوننت Roxy File manager در Asp.net core -------- آموزش ساخت صفحه Page Not Found (404) در Aspnet core -------- آموزش ایجاد Tag Helper سفارشی در Asp.net core -------- آموزش نحوه ایجاد Model برای دیتابیس موجود در Entity Framework Core -------- آموزش نحوه Upload و Download در Asp.net core 2 -------- آموزش dependency injection در Asp.net core 2 -------- آموزش تحت شبکه کردن برنامه های مبتنی بر c# در sql server -------- آموزش استفاده از Bundler & Minifier در Asp.Net Core -------- مروری بر Identity در Asp.net core2.1 (بخش دوم) -------- مروری بر Identity در Asp.net core2.1 (بخش اول) -------- آموزش مبحث Single Responsibility Principle (SRP) از بخش اصول طراحی شی گرا (SOLID) -------- آموزش publish کردن برنامه های Asp.net core بر روی سرور iis -------- پیاده سازی مسیریابی با استفاده از الگوریتم پیمایش اول سطح یا جستجوی اول سطح (BFS) در سی شارپ -------- آشنایی با SignalR در Asp.net core -------- آموزش استفاده از کلاس SeedData در Asp.net Core -------- قالب سایت فروشگاهی -------- آموزش ایجاد برنامه نصب (setup) قسمت سوم -------- آموزش ایجاد برنامه نصب (setup) قسمت دوم -------- آموزش ایجاد برنامه نصب (setup) قسمت اول -------- آموزش عملیات CRUD با استفاده از Ragor Pages در Asp.net Core2.0 -------- آموزش ثبت تصویر توسط دوربین در برنامه نویسی اندروید به زبان c#.net -------- حل مساله n وزیر با استفاده از الگوریتم ژنتیک و بصورت گرافیکی -------- آموزش نمایش تصویر loading در سمت client جهت بارگزاری صفحات با حجم زیاد از سرور در asp.net mvc -------- آموزش اعتبار سنجی غیر همزمان(AsyncValidation) با استفاده از جاوااسکریپت در Asp.net mvc -------- آموزش ایجاد breadcrumb با استفاده از sitemap در MVC -------- آموزش ایجاد برنامه چت دوطرفه با استفاده از Socket در سی شارپ -------- آموزش ارسال و دریافت فایل در برنامه تحت شبکه با استفاده ار سوکت (Socket) --------

ابتدای صفحه