C#Socket网络编程(三) UDP服务器端和客户端连接
2022/4/19 17:13:48
本文主要是介绍C#Socket网络编程(三) UDP服务器端和客户端连接,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Socket(套接字)编程(Udp)
基于Udp协议是无连接模式通讯,占用资源少,响应速度快,延时低。至于可靠性,可通过 应用层的控制来满足。(不可靠连接)
(1).建立一个套接字(Socket)
(2).绑定服务器端IP地址及端口号--服务器端
(3).通过SendTo()方法向指定主机发送消息 (需提供主机IP地址及端口)
(4).通过ReciveFrom()方法接收指定主机发送的消息 (需提供主机IP地址及端口)
TCP和UDP的区别
TCP协议和UDP协议连接过程的区别
1.基于连接与无连接;
2.对系统资源的要求(TCP较多,UDP少);
3.UDP程序结构较简单;
4.流模式与数据报模式 ;
5.TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证。
UDP服务器端:
1 using System; 2 using System.Net; 3 using System.Net.Sockets; 4 using System.Text; 5 6 namespace _29_UDP服务器端 7 { 8 internal class Program 9 { 10 static void Main(string[] args) 11 { 12 13 Socket udpServer = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 14 15 IPAddress ipAddress = new IPAddress(new byte[] { 192, 168, 31, 17 }); 16 // IP + Port 17 IPEndPoint ipEndPoint = new IPEndPoint(ipAddress, 7788); 18 19 udpServer.Bind(ipEndPoint); 20 //任何人都可以发送消息 21 IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 0); 22 EndPoint ep = (EndPoint)ipep; 23 byte[] data = new byte[1024]; 24 int length = udpServer.ReceiveFrom(data, ref ep); 25 26 Console.WriteLine("接收到数据:" + Encoding.UTF8.GetString(data, 0, length)); 27 28 udpServer.Close(); 29 } 30 } 31 }
UDP客户端:
1 using System; 2 using System.Net.Sockets; 3 using System.Net; 4 using System.Text; 5 6 namespace UDP客户端 7 { 8 class Program 9 { 10 static void Main(string[] args) 11 { 12 //(SocketType.Dgram)数据包形式发送 13 Socket udpClient = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); 14 IPAddress iPAddress = new IPAddress(new byte[] { 192, 168, 1, 184 }); 15 IPEndPoint iPEndPoint = new IPEndPoint(iPAddress, 6688); 16 //消息转码为byte 17 byte[] data = Encoding.UTF8.GetBytes("客户端上线了"); 18 //强转iPEndPoint为EndPoint 19 EndPoint ep = (EndPoint)iPEndPoint; 20 //发送消息 21 udpClient.SendTo(data, ep); 22 } 23 } 24 }
这篇关于C#Socket网络编程(三) UDP服务器端和客户端连接的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#
- 2024-01-24Advanced .Net Debugging 1:你必须知道的调试工具