TCP IP服务器可以处理多个请求吗?

发布于 2024-10-28 22:01:26 字数 252 浏览 4 评论 0原文

我正在学习 TCP/IP 并尝试使用它在我的服务器上执行不同的命令。

我想我应该从小事做起,逐步积累。我正在运行一个当前示例,其中有服务器和客户端连接,然后服务器将当前时间发送到客户端。

现在我想让服务器可以处理多个客户端。

我该怎么做?我想我可以使用 fork,但是有没有办法在不用担心多个进程的情况下做到这一点?

关于此类事情有什么好的入门知识吗?或者您可以提供一些有关如何修改我现有代码的说明吗?

谢谢,

I'm learning about TCP/IP and am trying to use it to execute different commands on my server.

I thought i'd start small and build up. I've got a current example running which has a server and client connect, and then the server sends the current time to the client.

Now i want to make it such that the server can handle multiple clients.

How can I do this? I think i could use fork, but is there a way to do it without having multiple processes to worry about?

Are there any good primers on this sort of thing, or could you provide some instructions on how to modify my existing code?

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

深空失忆 2024-11-04 22:01:26

glibc 手册 有一个很好的例子。缺失的代码位可以在本章前面找到。该示例的好处是您不需要多个线程

glibc Manual has a nice example. The missing code bits can be found earlier in the chapter. The nice thing about the example is that you do not need multiple threads

伴我心暖 2024-11-04 22:01:26

我建议使用线程:

  • 一个服务器线程的唯一目的是在服务器套接字上侦听传入连接。一旦收到连接,它就会被传递给工作线程,而服务器则继续监听。
  • 一个或多个工作线程。这些线程将完成大部分工作。您可以选择每个套接字使用一个线程,也可以使用 select 函数允许一个线程处理多个套接字。

我不知道我的头顶上有什么底漆,抱歉。

I would recommend the use of threads:

  • One server thread has the sole purpose of listening at the server socket for incoming connections. Once a connection is received, it is passed off to a worker thread, while the server keeps listening.
  • One or more worker threads. These threads will do the majority of the work. You can choose to use one thread per socket, or you can use the select function to allow one thread to handle multiple sockets.

I don't know any primers off the top of my head, sorry.

人心善变 2024-11-04 22:01:26

看看 Erik 对另一个问题的回答。您实际上不需要进行多线程处理。

Take a look at Erik's answer on this other question. You don't really need to do multithreading.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文