tcpClient和服务端有关问题、奇怪了

tcpClient和服务端问题、奇怪了。
为什么不能一直发送消息和一直接收消息哇。求改下我代码,哪里有问题
接收过一次消息就会不再等待了,这个代码 read.ReadToEnd();    ,等待一次消息下次就不等待了。愁哇。学习。

我服务器端代码是
   TcpListener tcp = new TcpListener(new System.Net.IPEndPoint(System.Net.IPAddress.Any,8888));
            tcp.Start(100);
        
          while (true)
          {
              var client = tcp.AcceptTcpClient();
              StreamReader read = new StreamReader(client.GetStream());
           
              Console.WriteLine("等待接收数据");
           string msg=   read.ReadToEnd();
           Console.WriteLine("数据是:" + msg);
          
          }
客户端代码是
  static void Main(string[] args)
        {
            TcpClient client = new TcpClient("127.0.0.1",8888);
           
            while (true)
            {
                Console.WriteLine("输入发送的消息");
                StreamWriter write = new StreamWriter(client.GetStream());
                write.Write(Console.ReadLine());
            
            }
        }



------解决思路----------------------
这只是一个玩具,实际程序是一个通用的、考虑性能和资源的框架,肯定不会这样写。

先按照你的思路给你写一个玩具:
using System;
using System.IO;
using System.Net.Sockets;
using System.Threading;

namespace ConsoleApplication1
{
    class Program
    {
        const int port = 8881;

        static void Main(string[] args)
        {
            Svr();
            Client();
        loop:
            new ManualResetEvent(false).WaitOne(10000);
            Console.WriteLine("主进程来露一下头--{0}", DateTime.Now);
            goto loop;
        }

        private static void Client()
        {
            ThreadPool.QueueUserWorkItem(h =>
            {
                TcpClient client = new TcpClient("127.0.0.1", port);
                StreamWriter write = new StreamWriter(client.GetStream());
                while (true)
                {
                    Console.WriteLine("输入发送的消息");
                    write.Write(Console.ReadLine());
                    write.Write("\r\n");
                    write.Flush();
                }
            });
        }

        static void Svr()
        {
            ThreadPool.QueueUserWorkItem(h =>
            {
                TcpListener tcp = new TcpListener(new System.Net.IPEndPoint(System.Net.IPAddress.Any, port));
                tcp.Start();
                var client = tcp.AcceptTcpClient();
                while (true)
                {
                    StreamReader read = new StreamReader(client.GetStream());
                    Console.WriteLine("等待接收数据");
                    string msg = read.ReadLine();
                    Console.WriteLine("数据是:" + msg);
                }
            });
        }

    }