C# 使服务器客户端无限制地工作

C# 使服务器客户端无限制地工作,c#,client-server,C#,Client Server,如何使服务器和客户机无限制地运行并能够交换数据(意思是,直到应用程序关闭),而不是仅为一次信息交换而运行。 尝试使用while(true)但可能没有将其放在正确的位置,因此我无法真正找到关闭和停止套接字和侦听器的方法。 以下是服务器的一些代码: public static void StartServer() { try { IPAddress ip = IPAddress.Parse("192.16

如何使服务器和客户机无限制地运行并能够交换数据(意思是,直到应用程序关闭),而不是仅为一次信息交换而运行。 尝试使用
while(true)
但可能没有将其放在正确的位置,因此我无法真正找到关闭和停止套接字和侦听器的方法。 以下是服务器的一些代码:

public static void StartServer()
        {
            try
            {
                IPAddress ip = IPAddress.Parse("192.168.1.11");
                TcpListener myListener = new TcpListener(ip, 8000);

                myListener.Start();

                Socket s = myListener.AcceptSocket();

                byte[] b = new byte[100];
                int k = s.Receive(b);

... some other actions ...

                s.Close();
                myListener.Stop();
            }
然后
Main()
调用它。
与客户的情况是一样的

您可以创建一个无限循环,其中包含处理数据的Receive函数,并返回到Receive。这样,在服务器或客户机终止之前,服务器总是从客户机中排除数据

while(true)
{
       byte[] buffer = new byte[100];
       s.Receive(buffer);
       //Do something with data...
}

请注意,因为在您当前的设计中,只支持一个客户端。如果您想支持多个客户端,请考虑使用线程。

您可以创建一个包含接收函数处理数据的无限循环,并返回到接收。这样,在服务器或客户机终止之前,服务器总是从客户机中排除数据

while(true)
{
       byte[] buffer = new byte[100];
       s.Receive(buffer);
       //Do something with data...
}
请注意,因为在您当前的设计中,只支持一个客户端。如果要支持多个客户端,请考虑使用线程。