zoukankan      html  css  js  c++  java
  • 用UDP协议发送广播

    服务器端:发送消息
    
    private void button1_Click(object sender, EventArgs e)
            {
                //只能用UDP协议发送广播,所以ProtocolType设置为UDP
                Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                //让其自动提供子网中的IP地址
                //IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.1.13"), 8090);//IPAddress.Broadcast
                IPEndPoint iep = new IPEndPoint(IPAddress.Broadcast, 8090);//IPAddress.Broadcast
                //设置broadcast值为1,允许套接字发送广播信息
                socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 1);
                //将发送内容转换为字节数组
                byte[] bytes = System.Text.Encoding.Unicode.GetBytes(this.textBox1.Text);
                //向子网发送信息
                socket.SendTo(bytes, iep);
                socket.Close();
            }
    客户端:接收消息
    
    //接收信息
            private void AcceptMessage()
            {
                //d定义socket对象
                Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                //IPEndPoint iep = new IPEndPoint(IPAddress.Parse("192.168.0.105"), 8090);
                IPEndPoint iep = new IPEndPoint(IPAddress.Any, 8090);
                socket.Bind(iep);
                ep = (EndPoint)iep;
                Console.WriteLine("Ready to receive…");
                byte[] bytes;
                while (true)
                {
                    stringData = "";
                    int recv = 0;
                    bytes = new byte[1024];
                    try
                    {
                        recv = socket.ReceiveFrom(bytes, ref ep);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("有异常", ex.ToString());
                    }
    
                    //string stringData = Encoding.ASCII.GetString(bytes, 0, recv);
                    stringData = System.Text.Encoding.Unicode.GetString(bytes).TrimEnd('u0000');
                    Console.WriteLine("received: {0} from: {1}", stringData, ep.ToString());
    
                    //socket.ReceiveFrom(bytes, ref ep);
                    //receiveData = System.Text.Encoding.Unicode.GetString(bytes);
                    //receiveData = receiveData.TrimEnd('u0000');
                    //Thread th = new Thread(new ThreadStart(Acc));
                    //th.Start();
                }
                socket.Close();
            }

  • 相关阅读:
    LeetCode 788. Rotated Digits
    LeetCode 606. Construct String from Binary Tree
    LeetCode 13. Roman to Integer
    LeetCode 387. First Unique Character in a String
    LeetCode 520. Detect Capital
    LeetCode 557. Reverse Words in a String III
    RSA加密算法及其与SpringMVC集成
    用phantomjs 进行网页整页截屏
    redis应用场景
    MQ产品比较-ActiveMQ-RocketMQ
  • 原文地址:https://www.cnblogs.com/luna-hehe/p/14412510.html
Copyright © 2011-2022 走看看