首页 > 解决方案 > 在 C++ 中打印套接字时,数字代表什么?

问题描述

SOCKET sampleSocket;
cout << sampleSocket << endl;
// End up with a number

我注意到,当我使用 cout 打印套接字时,我收到一个数字——该数字代表什么,我如何在使用 cout 之外检索它?

标签: c++socketstcpwinsock

解决方案


在 Winsock 应用程序中,套接字描述符不是文件描述符,必须与 Winsock 函数一起使用。[...] 因为 SOCKET 类型是无符号的,从例如 UNIX 环境编译现有源代码可能会导致编译器警告有关有符号/无符号数据类型不匹配的警告。

(参见套接字数据类型

从这个文档中我们可以得知它是一种unsigned数据类型。但是,确切的整数类型仍然是实现定义的。它可能是一个 32 位或 64 位unsigned整数。


推荐阅读