C# socket編程 使用udp實現單對單的連接對話


ipLocalPoint = new IPEndPoint(IPAddress.Parse("192.168.31.122"), 5000);

            //定義網絡類型,數據連接類型和網絡協議UDP 
            mySocket = new Socket
   (AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

            //綁定網絡地址 
            mySocket.Bind(ipLocalPoint);

            //得到客戶機IP 
            IPAddress ip = IPAddress.Parse("192.168.31.127");
            int port = 5000;
            IPEndPoint ipep = new IPEndPoint(ip, port);
            RemotePoint = (EndPoint)(ipep);

            //啟動一個新的線程,執行方法this.ReceiveHandle, 
            //以便在一個獨立的進程中執行數據接收的操作 

            RunningFlag = true;
            Thread thread = new Thread(new ThreadStart(this.ReceiveHandle));
            thread.Start();

  //ReceiveHandle數據接收函數

  //接收數據處理線程 
            string msg;
            byte[] data = new byte[1024];
            MyInvoke myI = new MyInvoke(UpdateMsgTextBox);
            while (RunningFlag)
            {

                if (mySocket == null || mySocket.Available < 1)
                {
                    Thread.Sleep(200);
                    continue;
                }
                //跨線程調用控件 
                //接收UDP數據報,引用參數RemotePoint獲得源地址 
                int rlen = mySocket.ReceiveFrom(data, ref RemotePoint);
                msg = Encoding.Default.GetString(data, 0, rlen);
                tbMsg.BeginInvoke
                    (myI, new object[] { RemotePoint.ToString() + " : " + msg });

            }

  //發送udp數據包

    string msg;
            msg = tbSendMsg.Text;
            //發送UDP數據包 
            byte[] data = Encoding.Default.GetBytes(msg);
            mySocket.SendTo(data, data.Length, SocketFlags.None, RemotePoint);

  //更新接收的消息到winform

     //接收數據顯示 
            this.tbMsg.AppendText(msg + "\n");

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM