socket udp无连接通信
socket udp无连接通信
参考地址:https://www.cnblogs.com/dj1232090/p/7608215.html 比较完整
客户端:用到json库
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Socket_Client { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { var obj = new UserModel() { Id = "123", Name = "张三" }; var json = Newtonsoft.Json.JsonConvert.SerializeObject(obj); Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); socket.SendTo(Encoding.UTF8.GetBytes(json), new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3333)); } } public class UserModel { public string Id { get; set; } public string Name { get; set; } } }
服务端:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace Socket_Server { public partial class Form1 : Form { public Form1() { InitializeComponent(); TextBox.CheckForIllegalCrossThreadCalls = false; } private void button1_Click(object sender, EventArgs e) { this.textBox1.Text = "开始监听...."; Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); socket.Bind(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 3333)); Thread recTh = new Thread(Recive); recTh.Start(socket); } private void Recive(object obj) { byte[] buffer = new byte[1024]; var socket = obj as Socket; while (true) { int count = socket.Receive(buffer); var msg = Encoding.UTF8.GetString(buffer, 0, count); this.textBox1.Text = this.textBox1.Text + "\r\n" + msg; } } } }
为了明天能幸福,今天付出再多也不后悔。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构