用于多线程TCP服务器的TCPStream类

时间:2011-04-20 19:48:30

标签: c++ networking tcp iostream tcpserver

我目前正致力于将小型控制台应用程序转换为TCP服务器/客户端应用程序。客户端将通过任何Telnet客户端连接到服务器,服务器将为每个Telnet连接复制标准控制台界面。

我开始尝试使用我从Beej的网络编程指南中学到的技术 - 接受连接然后使用fork()将其分离到自己的进程中。

但是,我更愿意继续使用流式IO(原始控制台应用程序使用cin / cout,使用类似的网络逻辑功能会使转换过程更加简单)。

我发现了TCPStream类,隐藏在sockets.h中(http://www.gnutelephony.org/doxy/bayonne2/a00215.html)

看来这个类允许我使用带有流IO的服务器。但是,我找不到使用此类的单个示例,也无法找到有关如何使用fork()的说明。

有什么想法吗?提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我认为你把树木混为森林。一个套接字类是整体需要做的一小部分,不值得关注。

如果您的目标只是让您的项目正常运行,那么只需使用现有框架,而不是尝试从单个项目中提取单个类。 POCO有一个TCPServer类,可以为你完成90%的工作。 QT,ACE和其他人都有类似的课程。 POCO上没有大量的文档,但它们确实很好地涵盖了TCPServer,你可以从阅读源代码中学到很多东西,如果真的你感兴趣的话。