尝试在c中实现并发TCP服务器和客户端

时间:2011-03-13 16:55:02

标签: c sockets concurrency tcp

我已经使用线程和分支在c中实现了TCp并发服务器和客户端。 但我没有办法检查是否有其他标准的实施方式 此

我已经为标准编码提供了一些帮助,但没有找到任何有用的东西。 有人可以分享一些好的链接或代码,以便我可以有一个标准的想法 实现并发服务器。

感谢您的帮助

3 个答案:

答案 0 :(得分:3)

没有“标准的想法”。您的方法将取决于开发所允许的要求,性能,可伸缩性和时间。

  • 每个客户一个帖子
    • 可能使用线程池
  • 多线程管道模型,有N个工人
  • 每个服务器一个线程,使用poll / select
  • 每个服务器一个线程,基于事件的回调
  • 分叉儿童,每个客户连接一个
    • 预先分叉的孩子,例如Apache Web服务器

等。所有这些都有它们的用途。

答案 1 :(得分:2)

一些很好的链接:

希望这有帮助。

答案 2 :(得分:1)

并发服务器(只要它们非常简单,性能不是很大的问题)通常使用poll()select()创建。现在,假设你在* nix上。 如果你可以使用C ++,那么boost库就有ASIO,它是一个跨平台的库,允许你编写一次并在任何地方编译。实际上并没有一种标准的方法,因为从操作系统到操作系统的想法各不相同。