سلام دوستان. امیدوارم حالتون عالی باشه.

بعد مدت ها اومدم تا یک آموزش مشتی براتون بزارم.

توی این برنامه از برنامه نویسی سوکت استفاده میکنیم.

خب ویژوال استودیو رو آتیش کنید.

حالا یه پروژه windows forms درست کنید و اسمشو بزارید: Server

حالا اینا رو بزارید توش:

1 عدد rich text box
1 عدد text box
3 عدد button
2 عدد label

*نکته: اسم کامپوننت ها رو عوض نکنید.

حالا صفحتونو این شکلی بچینید:

 

 

حالا دوبار روی فورم کلیک کنید و using های زیر رو اضافه کنید:

 

using System.Net;
using System.Net.Sockets;
using System.Threading;

 

حالا روی دکمه start دوبار کلیک کنید و کدای زیرو اضافه کنید:

 

            try
            {
                Thread tr = new Thread(new ThreadStart(Start));
                tr.Start();
                label2.ForeColor = Color.DarkGreen;
                label2.Text = "On";
                MessageBox.Show("server is running!", "server running!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

 

و بعد متد های زیر رو خارج از متد های دیگه بنویسید:

 

        private void Start()
        {
            Socket SServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            SServer.Bind(new IPEndPoint(IPAddress.Any, 15000));
            SServer.Listen(1);
            SClient = SServer.Accept();
            Thread tr = new Thread(new ThreadStart(RecMessage));
            tr.Start();
        }

        private void RecMessage()
        {
            while (true)
            {
                try
                {
                    byte[] buffer = new byte[2048];
                    int rec = SClient.Receive(buffer);
                    if (rec > 0)
                    {
                        richTextBox1.Invoke((MethodInvoker)delegate
                        {
                            richTextBox1.Text += "\n>> " + Encoding.Unicode.GetString(buffer,0,rec);
                        });
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }

        private void SendMsg(string Message)
        {
            byte[] buffer = Encoding.Unicode.GetBytes(Message);
            SClient.Send(buffer);
        }

 

حالا روی دکمه Send دوبار کلیک کنید و کد زیر رو بنویسید:

 

SendMsg(textBox1.Text);

 

و توی دکمه Exit هم کد زیر رو بزنید:

 

Application.Exit();

 

حالا برنامه رو کمپایل کنید.

حالا باید کلاینت رو بسازیم.

یه پروژه دیگه باز کنید و اسمشو بزارید Client

حالا مثل قبل همون کامپوننت هارو بزارید و اینشکلی بچینید:

 

 

using های زیر رو به پروژه تون اضافه کنید:

 

using System.Net;
using System.Net.Sockets;
using System.Threading;

 

حالا دوبار روی دکمه Connect کلیک کنید و کدای زیرو توش بنویسید:

 

            try
            {
                SClient = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                SClient.Connect(new IPEndPoint(IPAddress.Parse("Your Ip"), 15000));
                Thread tr = new Thread(new ThreadStart(GetMsg));
                tr.Start();
                label2.ForeColor = Color.DarkGreen;
                label2.Text = "On";
                MessageBox.Show("Connected to server!", "connected!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

توی خط چهارم بجای your ip لوکال آیپی تونو بنویسید. (آموزش بدست آوردن لوکال آیپی)

حالا توی دکمه Send کد زیر رو بزارید:

 

SendMessage(textBox1.Text);

 

و توی دکمه Exit هم کد زیر رو بزارید:

 

Application.Exit();

 

حالا خارج از متد های دیگه این متد ها رو بنویسید:

 

        private void GetMsg()
        {
            while (true)
            {
                try
                {
                    byte[] buffer = new byte[2048];
                    int rec = SClient.Receive(buffer);
                    if (rec > 0)
                    {
                        richTextBox1.Invoke((MethodInvoker)delegate
                        {
                            richTextBox1.Text += "\n>> " + Encoding.Unicode.GetString(buffer, 0, rec);
                        });
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
        }
        private void SendMessage(string Message)
        {
            byte[] buffer = Encoding.Unicode.GetBytes(Message);
            SClient.Send(buffer);
        }

 

حالا این هم کمپایل کنید.

تبریک!

شما تونستید یه چت درون شبکه برای خودتون بسازید.

 

 

 

we work in dark to serve the light

we are darkarmy team


آموزش گرفتن میانگین در پایتون

پیدا کردن لوکال آیپی با CMD

ساخت چت درون شبکه با #C

  ,} ,{ ,رو ,حالا ,new ,} } ,  حالا ,زیر رو ,using system ,کنید و ,unicode getstring buffer ,encoding unicode getstring ,invoke methodinvoker delegate ,richtextbox1 invoke methodinvoker

مشخصات

تبلیغات

آخرین ارسال ها

برترین جستجو ها

آخرین جستجو ها

بانک مقالات ایران Bime_asia_rouhi ادارہ مصباح الھدیٰ مدرنهای امروزی سید الساجدین حریری به رنگ آبان رنگین کمان شرکت ثبت مولای بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِیمِ آهن پخش , قیمت آهن , وبلاگ اینترنتی آهن