C# socket TCP 通信
Server:
void Main() { var maxWaitingRequest = 10; var localSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); localSocket.Bind(new IPEndPoint(IPAddress.Any, 40000)); localSocket.Listen(maxWaitingRequest); while (true) { var remoteSocket = localSocket.Accept(); var remoteIP = (IPEndPoint)remoteSocket.RemoteEndPoint; Console.WriteLine("A new connection from {0}:{1} at {2}", remoteIP.Address.ToString(), remoteIP.Port.ToString(), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); ThreadPool.QueueUserWorkItem(acceptedConnectionHandler, remoteSocket); } } static void acceptedConnectionHandler(object p) { var remoteSocket = (Socket)p; remoteSocket.Send(System.Text.Encoding.Default.GetBytes("Hi client!")); var data = new List<byte>(); var dataBlock = new byte[1024]; while (true) { var read = remoteSocket.Receive(dataBlock); data.AddRange(dataBlock.Take(read)); if (read <= dataBlock.Length && data.Count > 0) { Console.WriteLine(System.Text.Encoding.Default.GetString(data.ToArray())); data.Clear(); } } }
Client:
void Main() { var localSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); var localEP = new IPEndPoint(IPAddress.Any, 20000); localSocket.Bind(localEP); localSocket.Connect(new IPEndPoint(IPAddress.Parse("127.0.0.1"), 40000)); ThreadPool.QueueUserWorkItem(connectedConnectionHandler,localSocket); while(true) Thread.Sleep(100); } public static void connectedConnectionHandler(object p) { var localSocket = (Socket)p; var data = new List<byte>(); var dataBlock = new byte[1024]; while (true) { var read = localSocket.Receive(dataBlock); data.AddRange(dataBlock.Take(read)); if (read <= dataBlock.Length && data.Count > 0) { Console.WriteLine(System.Text.Encoding.Default.GetString(data.ToArray())); data.Clear(); localSocket.Send(System.Text.Encoding.Default.GetBytes("Hi server!")); } } }
桂棹兮兰桨,击空明兮溯流光。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2019-12-10 javascript 访问 webservice
2017-12-10 xamarin android 报错 Could not load assembly 'Xamarin.Android.Support.v7.AppCompat
2016-12-10 VS2010 中 Entity Framework 多数据库并存方法
2015-12-10 C#访问非托管内存
2013-12-10 c# 获取 webbrowser 完整 cookie