小编And*_*dré的帖子

winsock socket作为文件句柄

我一直在摸不着头脑,现在正在寻找一个小时的答案.基本上我所做的是打开其他机器的套接字并从中读取数据.通过传入表示套接字的int的fdopen调用,将此套接字"转换"为文件句柄.然后将生成的文件句柄传递给bison解析器,该解析器直接解析通过套接字接收的数据.所有这些在linux上运行良好.现在我已经尝试将此代码移植到Windows中,但我却失败了.代码看起来像这样:

        FILE* fileHandle;
        #if defined WINCE || defined WIN32
        int fd = _open_osfhandle(socket, _O_RDONLY);
        if (fileHandle = fdopen(fd, "r")) {
        #else
        if (fileHandle = fdopen(socket, "r")) {
        #endif
           ... // code to call my parser with fileHandle as argument
Run Code Online (Sandbox Code Playgroud)

bison/flex解析器在Windows版本中失败,因为文件句柄似乎指向空流/文件.任何人都可以指出一个全面的资源来解释这个东西或提示替代解决方案吗?

谢谢和最诚挚的问候,

安德烈

winsock filehandle

4
推荐指数
1
解决办法
3484
查看次数

标签 统计

filehandle ×1

winsock ×1