c++ - 从套接字读取到 basic_filebuf

标签 c++ sockets client

这是来自客户端的代码(使用)

   struct sockaddr_in stSockAddr;
   int Res;
   int SocketFD;
   SocketFD = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
   if (-1 == SocketFD)
   {
      perror("cannot create socket");
      exit(EXIT_FAILURE);
   }

    memset(&stSockAddr, 0, sizeof(stSockAddr));

    stSockAddr.sin_family = AF_INET;
    stSockAddr.sin_port = htons(8182);
    Res = inet_pton(AF_INET, "127.0.0.1", &stSockAddr.sin_addr);    

然后我使用

从服务器得到响应
   char buffer[4096] = "";
   n = read(aSocketFD, buffer, 4096);  

我的问题是:
我可以获得像 std::basic_filebuf 这样的响应吗?或者我可以得到对 FILE * 的回应吗? Socket 是一个文件处理程序,所以我可以做到,但是怎么做呢?

最佳答案

对于 C 代码,您可以使用像 FILE* 这样的描述符调用 fdopen():将流与文件描述符(POSIX.1 标准)相关联。

关于c++ - 从套接字读取到 basic_filebuf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10207983/

相关文章:

c++ - 作为标准输入从文件中读取

c - 如何知道套接字何时完成读取

java - Perl 和 Java 之间通过套接字发送字节数组

c++ - 'boost::operator ==' : 4个重载有相似的转换

c++ - Visual Studio 17 用户关键字冲突(?)

c++ - 有没有一种简单的方法可以使用 native C++ 代码(VS2010)和 Bamboo 执行 CI?

javascript - Socket.IO 消息不更新 Angular 变量

php - 错误 2002 (HY000) : Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13) Ubuntu

sockets - 为什么 socket 关闭了Erlang

html - 如何强制浏览器不缓存文本字段?