C# 套接字程序使计算机崩溃

C# 套接字程序使计算机崩溃,c#,C#,这是代码。如果你试图运行,该程序将使你的计算机崩溃 IPEndPoint ip = new IPEndPoint(IPAddress.Any, 10000); Socket sk = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sk.Bind(ip); sk.Listen(100); while (true) { sk.BeginAccept(new Asyn

这是代码。如果你试图运行,该程序将使你的计算机崩溃

  IPEndPoint ip = new IPEndPoint(IPAddress.Any, 10000);
  Socket sk = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  sk.Bind(ip);
  sk.Listen(100);
  while (true) {
    sk.BeginAccept(new AsyncCallback(OnReveive), sk);
  }

  private static void OnReveive(IAsyncResult ar) {
    Socket sock = (Socket) ar.AsyncState;
    Socket cl = sock.EndAccept(ar);
    Console.WriteLine("New Connection from" + cl.RemoteEndPoint.ToString());
  }
我想问为什么它会使我的电脑崩溃

  while (true) {
    sk.BeginAccept(new AsyncCallback(OnReveive), sk);
  }
beginacept
是一种异步方法,它可以立即返回,因此您的代码可以用
new AsyncCallback(onrevive)
回调快速填充内存池。只调用一次,不要在调用时将其放入

或者调用阻塞方法

beginacept
是一种异步方法,它可以立即返回,因此您的代码可以用
new AsyncCallback(onrevive)
回调快速填充内存池。只调用一次,不要在调用时将其放入


或者调用阻塞方法。

那么这里的问题是什么?我不知道它为什么会使我的计算机崩溃。那么,你能回答@Krohn关于它如何使你的计算机崩溃的问题吗?会发生什么?它是否以蓝色屏幕结束?它挂起来了吗?它着火了吗?它是否会直接撞到墙上,从而在物理上“崩溃”呢?它表现不好的原因是因为您在一个紧密的循环中启动异步操作,很快就会填满其中一个池,可用连接对象池、句柄池、内存池、线程池、,等等。我希望你理解代码的作用,并且问题不是“我如何正确地做到这一点”?这看起来很难让计算机崩溃。那么这里的问题是什么?我不知道它为什么会使我的计算机崩溃。好的,你能回答@Krohn关于它如何使你的计算机崩溃的问题吗?会发生什么?它是否以蓝色屏幕结束?它挂起来了吗?它着火了吗?它是否会直接撞到墙上,从而在物理上“崩溃”呢?它表现不好的原因是因为您在一个紧密的循环中启动异步操作,很快就会填满其中一个池,可用连接对象池、句柄池、内存池、线程池、,等等。我希望你理解代码的作用,问题不是“我如何正确地做这件事”?这看起来很难让电脑崩溃。我发现了,但不确定这是否是他的问题。接得好:我猜到了,但不确定这是否是他的问题。接得好:P