Socket编程UDP协议

版权声明:转载 请说明 出处 https://blog.csdn.net/qq2512667/article/details/86513585

使用Socket 里的Udp协议,SocketType 数据传输方式用Dgram  数据报,使用UDP 通信不需要建立链接 ,只要知道对方的IP 和端口号 即可 。

UDP 即可以作为服务端 也可以作为客服端。

 static Socket UDPSocket;
        static void Main(string[] args)
        {
            //1 创建 socket
            UDPSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            //2 绑定 端口号
            EndPoint endPoint = new IPEndPoint(IPAddress.Parse("172.17.144.3"), 7788);
            UDPSocket.Bind(endPoint);


            Thread t = new Thread(ReceiveMsg);
            t.IsBackground = true;
            t.Start();
        }
        static void ReceiveMsg()
        {
            
            byte[] data = new byte[1024];
            EndPoint point = new IPEndPoint(IPAddress.Any, 0);
            while (true)
            { 
                int length = UDPSocket.ReceiveFrom(data, ref point);

                string mes = Encoding.UTF8.GetString(data, 0, length);

                Console.WriteLine("服务器从" + ((IPEndPoint)point).Address + "端口:" + ((IPEndPoint)point).Port + "收到了消息:" + mes);
            }
        }

 UDPSocket.ReceiveFrom()   会停止  直到 收到了数据

SendTo  发给指定的 IP

        static void Main(string[] args)
        {
            Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            EndPoint endPoint = new IPEndPoint(IPAddress.Parse("172.17.144.3"), 7788);
            while (true)
            { 
                string mes = Console.ReadLine();
                
                socket.SendTo(Encoding.UTF8.GetBytes(mes),endPoint);
            }
        }

SendTo方法

UDP 面向无连接 丢包率高  系统资源要求低  快

TCP 面向链接 丢包率低   系统资源要求高 稳  三次握手  易被攻击 

https://www.cnblogs.com/xiaomayizoe/p/5258754.html TCP 和UDP的区别

TCP与UDP区别总结:

1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接

2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付

3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的

UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)

4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信

5、TCP首部开销20字节;UDP的首部开销小,只有8个字节

6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道

猜你喜欢

转载自blog.csdn.net/qq2512667/article/details/86513585