zoukankan      html  css  js  c++  java
  • c# UDP

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.Net.Sockets;
    using System.Net;
    using System.Threading;
    
    namespace WindowsFormsApplication2
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            Socket s;
            EndPoint x;
            private void button1_Click(object sender, EventArgs e)
            {
                
                //服务器
                string ip = this.textBox1.Text;
                int p = int.Parse(this.textBox2.Text);
                IPAddress ips = IPAddress.Parse(ip);
                IPEndPoint ps = new IPEndPoint(ips, p);
                s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Udp);
                s.Bind(ps);
    
                //客户机IP
                string ip1 = this.textBox4.Text;
                int p1 = int.Parse(this.textBox3.Text);
                int px = int.Parse(this.textBox2.Text);
                IPAddress ipsx = IPAddress.Parse(ip1);
                IPEndPoint psx = new IPEndPoint(ipsx, p1);
                x = (EndPoint)psx;
                
                //使用线程处理数据接受 
                //接受UDP数据报,引用参数X获得源地址
                Thread th = new Thread(new ThreadStart(Receive));
                th.IsBackground = true;
                th.Start();
    
                
    
            }
            public delegate void myInvoke(string s);
            void Receive() 
            {
                string msg;
                byte[] data = new byte[1024];
                myInvoke my = new myInvoke(showmsg);
                while (true) 
                {
                    if (s == null || s.Available < 1) 
                    {
                        Thread.Sleep(200);
                        continue;
                    }
                    //跨线程调用控件
                    //接受UDP数据包,引用参数X源地址
                    int re=s.ReceiveFrom(data,ref x);
                    msg=Encoding.Default.GetString(data,0,re);
                    this.textBox5.BeginInvoke(my,new object[] {x.ToString()+":"+msg});
                }
            
            }
    
            void showmsg(string msg) 
            {
                this.textBox5.AppendText(msg + "
    ");
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                string msg;
                msg = this.textBox6.Text;
                byte[] data = Encoding.Default.GetBytes(msg);
                s.SendTo(data,data.Length,SocketFlags.None,x);
            }
        }
    }
    

      

  • 相关阅读:
    5月29 流程
    5月27 权限设置及功能
    5月26 留言板练习题
    5月24 文件操作
    5月23 文件上传及图片上传预览
    5月23 注册审核
    5月21 回话控制SESSION COOKIE
    5月21 汽车查询及批量删除----php方法
    5月21 练习AJAX的查看详细及批量删除
    5月20 三级联动
  • 原文地址:https://www.cnblogs.com/mengluo/p/5652818.html
Copyright © 2011-2022 走看看