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

时间:2013-04-08 22:13:49

标签: c# client-server

如何让服务器和客户端无限制地运行并能够交换数据(意味着,直到应用程序关闭),而不是只运行一次信息交换。 尝试使用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()。 与客户是同一个故事。

1 个答案:

答案 0 :(得分:3)

您可以创建一个包含Receive函数处理数据的无限循环,并返回receive。这样,服务器始终排除来自客户端的数据,直到服务器或客户端终止。

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

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