服务器端
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Net.Sockets;
    using System.Text;
    using System.Threading.Tasks;

    namespace LOL
    {
           class Program
           {
                   private static Socket server;

                   static void Main(string[] args)
                   {
                           Console.WriteLine(“服务器启动”);
                           //定义网络类型(intel)和传输方式(流)和网络协议(tcp)
                           server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

                           //任何ip都可以访问,绑定端口号
                           server.Bind(new IPEndPoint(IPAddress.Any, 10001));

                            //同时可以监听10条消息
                           server.Listen(10);

                           while (true)
                           {
                                   //有客户连接后,返回一个客户端实例(没有客户端时,程序会一直停在这里)                                Socket client = server.Accept();                               Console.WriteLine(“有客户端连接了”);                                              RecevieMessage(client);
                           }
                
                   }

                   private static void RecevieMessage(Socket client)
                   {
                           try
                           {
                                   //创建一个字节缓冲数组
                                   byte[] buffer = new byte[1024];

                                   //从客户端读取数据放入字节缓冲数组
                                    int size = client.Receive(buffer);

                                   //                                                                                                       把字节数组里面的东西用utf8转换为字符串
                                   Console.WriteLine(client.RemoteEndPoint.ToString() + “:” + Encoding.UTF8.GetString(buffer, 0, size));

                                   RecevieMessage(client);
                           }
                           catch (Exception e)
                           {
                                   Console.WriteLine(“断开”);
                           }

                        
                   }

           }
    }


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.Sockets;
    using System.Text;
    using System.Threading.Tasks;

    namespace LolClient
    {
           class Program
           {
                   private static Socket client;
                   private static byte[] byteArray = new byte[1024];

                   static void Main(string[] args)
                   {
                           Console.WriteLine(“客户端启动”);

                           //定义网络类型(intel)和传输方式(流)和网络协议(tcp)
                           client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

                           //连接ip和端口号
                           client.Connect(“192.168.1.105”, 10001);

                           //开始异步接受数据
                           client.BeginReceive(byteArray, 0, 1024, SocketFlags.None, ReceiveCallBack, client);

                           //实现用户的输入,并且把输入发送到服务器
                           Input();
                   }

                   private static void Input()
                   {
                           string text = Console.ReadLine();

                           //把字符串转换为字节数组
                           byte[] byteBuffer = Encoding.UTF8.GetBytes(text);

                           //发送
                           client.Send(byteBuffer);

                           //继续监听下一次输入
                           Input();
                   }

                   private static void ReceiveCallBack(IAsyncResult ar)
                   {
                           Socket client = (Socket)ar.AsyncState;

                           try
                           {
                                   int size = client.EndReceive(ar);

                                   Console.WriteLine(Encoding.UTF8.GetString(byteArray, 0, size));
                           }
                           catch (Exception)
                           {
                                  
                                   throw;
                           }

                        
                   }
           }
    }