C# udp协议的同步通讯
2018-01-29 18:00
585 查看
服务器
初始化完,使用GetApp()方法会让主线程停止并等待客户端消息传入,并返回收到的ip和文本class UdpSever { IPEndPoint ip; Socket socket; public struct App { public EndPoint endPoint; //客户端的ip public string text; } public UdpSever() { ip = new IPEndPoint(IPAddress.Any, 2333);//设置ip和端口 socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); socket.Bind(ip); } public App GetApp() { byte[] data = new byte[1024]; App app = new App(); app.endPoint = new IPEndPoint(IPAddress.Any, 0); int recv = socket.ReceiveFrom(data, ref app.endPoint); app.text = Encoding.Default.GetString(data, 0, recv); return app; } public void Send(App app, string text) { byte[] data = Encoding.Default.GetBytes(text); socket.SendTo(data, data.Length, SocketFlags.None, app.endPoint); } }
客户端
初始化完后,使用Sent()方法向服务器发送信息并等待服务器返回信息class UdpApp { IPEndPoint ip; Socket socket; public UdpApp() { ip = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 2333);//设置ip和端口 socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); } public string Sent(string text) { byte[] data = new byte[1024]; data = Encoding.Default.GetBytes(text); socket.SendTo(data, data.Length, SocketFlags.None, ip); IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0); EndPoint Remote = sender; data = new byte[1024]; int recv = socket.ReceiveFrom(data, ref Remote); return Encoding.Default.GetString(data, 0, recv); } }
抛砖引玉!
参考资料:博客园-sunev-基于C#的UDP协议的同步实现
相关文章推荐
- 基于C#的UDP协议的同步实现
- 基于C#的UDP协议的同步实现
- C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP)
- C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP)
- TCP通讯协议和UDP通讯协议
- 一个进程间同步和通讯的 C# 框架
- java的UDP协议通讯的客户端
- Visual C++设计UDP协议通讯示例
- 使用UDP协议与韩国OACIS压机通讯
- Visual C++设计UDP协议通讯示例
- Java基于UDP协议的简单通讯实例
- c#基于事件模型的UDP通讯框架(适用于网络包编解码)
- [转]C#完整的通信代码(点对点,点对多,同步,异步,UDP,TCP)
- C#【Fox即时通讯核心】 开发记录之三(知识储备:TCP UDP打洞)
- 用C# 根据 JSC100 V5.0读写器通讯协议 编写读卡器API
- 用udp协议通讯示例(zz)
- C#UDP通讯UdpClient
- C# udp socket通讯
- C#网络编程系列文章(八)之UdpClient实现同步UDP服务器
- C#.net同步异步SOCKET通讯和多线程总结