C# 如何将TCP套接字置于等待状态

C# 如何将TCP套接字置于等待状态,c#,sockets,tcp,C#,Sockets,Tcp,在我的应用程序中,我使用一个System.Threading.Timer,它每3秒就响一次,并建立到服务器的tcp套接字连接,然后向服务器发送一个映像文件。目前,在每次计时器滴答声事件中,我都会与服务器建立TCP连接,然后发送数据 我的问题是,我是否可能只进行一次连接,并在计时器计时时发送文件,如果是,那么我如何将服务器置于等待状态,以等待新数据到达 这是我的服务器端代码片段 client = listeningSocket.Accept();

在我的应用程序中,我使用一个System.Threading.Timer,它每3秒就响一次,并建立到服务器的tcp套接字连接,然后向服务器发送一个映像文件。目前,在每次计时器滴答声事件中,我都会与服务器建立TCP连接,然后发送数据

我的问题是,我是否可能只进行一次连接,并在计时器计时时发送文件,如果是,那么我如何将服务器置于等待状态,以等待新数据到达

这是我的服务器端代码片段

            client = listeningSocket.Accept();

            Task.Factory.StartNew(() =>
            {
                   try
                   {
                      //code to receive client data.

                    }
                    catch (Exception ex)
                    {
                    }
                }
            }, TaskCreationOptions.LongRunning);

谢谢。

client.Receive(..)
或使用
client.GetStream()
作为
网络流
作为
等待ReadAsync()
我知道这一点。我的意思是,当没有数据来自客户端时,如何将服务器置于等待状态,等待新数据到达,而不是断开套接字并再次连接。
client.Receive()
正在阻塞。这意味着它将等待直到收到数据。你需要接受才能知道什么都不会发生。这是等待状态。不要使用任何可用的数据等。。。