我正在尝试创建一个我自己的Web服务器,关于我们今天使用的Web服务器的工作有几个问题。问题如下:
发布于 2013-10-07 09:23:18
这里的http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html是关于all服务器所发生的事情的一个很好的指南,虽然它在c中,但是概念都在这里。这将解释整个客户端服务器关系以及一些实现细节。
我只需要给出一个更高级别的内容:通常情况是,当您的服务器收到一个新的请求时,它会创建一个分叉来处理它,这样您就不会被每个请求所困扰,当请求出现在子进程中时,会向它传递一个新的文件(同样,这是所有的实现细节)。
因此,您确实有一个服务器在等待请求,对于它收到的每一个请求,它都会产生一个子进程来处理这个请求。我肯定有比c语言更容易实现这些东西的语言(我过去必须同时使用一个c和java服务器来服务于任何一个),但是c真的能让你理解正在发生的事情,我打赌这就是你在这里寻找的东西。
现在有几件事需要考虑:您希望the服务器如何工作。该示例解释父进程。您想使用tcp/UDP吗?在传递有效负载的方式上存在差异。您不必在端口80上连接。这只是web的默认设置。
希望导游能帮你。
发布于 2013-10-07 09:13:04
- using multiple processes or threads: when one is busy serving a client the others can serve other clients.
- using events: the server listens for events from the OS: when it can write a block of data to a connection it writes it, when a new client connects it accepts the connection, ...
这两种方法常常是结合在一起的。
https://stackoverflow.com/questions/19230655
复制相似问题