读取句柄错误

read handle error

本文关键字:错误 句柄 读取      更新时间:2023-10-16
            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);

我正在做一个网络编程,我有这个代码。它在本地主机上运行良好(没有出现错误(,但我确信如果我在现实世界的网络上尝试,它会爆炸。问题是,我不是网络编程专家,也不确定应该添加哪个错误处理。它还必须找到一个好的例子或教程,包括具体的错误处理。

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

提前谢谢。

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

查看本教程/参考资料:Beej的网络编程指南这是我为网络编程准备的参考资料。