c++ - 读句柄错误

标签 c++ networking

            int dataLength;
            int readLength = read(conn->getFd(), &dataLength, HEADER_SIZE);
            printf("Header read %d \n", readLength);

            if(readLength == 0){
                removeClient(conn);
                close(conn->getFd());
            }
            else {
                /*
                 * Do not parse anything here.
                 * Pass the raw data to the work handler.
                 */
                char *buf = new char[dataLength+1];
                int dataReadLength = read(conn->getFd(), buf, dataLength);
                printf("Data read %d \n", dataReadLength);

                printf("ServerManager::eventAcceptLoop, A message has been received \n");
                addWork(conn->getFd(), buf, dataReadLength);

我正在从事网络编程工作,我有这段代码。它在 localhost 中运行良好(没有错误发生),但我确信如果我在真实世界的网络上尝试它会崩溃。问题是我不是网络编程专家,也不确定应该添加哪个错误句柄。它还必须找到一个很好的示例或教程,包括特定的错误处理。

如果你们能为我提供一个可能有助于获得错误处理的好示例或教程,我将不胜感激。

提前致谢。

最佳答案

需要分析read()返回-1的情况。

查看本教程/引用资料:Beej's Guide to Network Programming 这是我进行网络编程的首选引用资料。

关于c++ - 读句柄错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6420461/

相关文章:

c++ - typedef 模板的成员类型

android - 如何以编程方式注册网络连接更改接收器?

c - 在linux中,我的系统的ip地址存在于哪个文件中

c++ - 用 C++ 编写 Haskell 解释器(使用 ghc 或 hugs 作为库)

c++ - 如何为 IWICBitmap 创建 ID2D1DeviceContext? (对于 C++ 中的 Metro 应用程序)

c++ - 类实现文件中未声明的标识符

c++ - 错误 C2143 : syntax error : missing ';' before '*'

java - 套接字连接在独立 "main(..)"类中运行良好,但在 servlet 环境中超时

java - 简单的图形程序

networking - 限制 Condor 作业的调度 : one per physical machine