什么是SOCKET类型?

dev*_*ium 2 c++ sockets

我可以看到它看起来像一个unsigned int指针的别名,对吗?它就像内存中的指针吗?实际指向的是什么?它指向一个结构吗?如果是,那该结构是如何定义的?它只是套接字函数使用的数字而不映射到内存地址吗?

Gre*_*ill 7

在Win32中,SOCKET数据类型与a相同,a HANDLE是用于指代某种内核数据结构的整数.这个内核数据结构是"不透明的",这意味着应用程序不需要(实际上不能)查看结构的内部结构.所有对Win32 SOCKET的访问都是通过Winsock API函数完成的.

请注意,在Win16中,a SOCKET不是一回事,因为没有Win16 HANDLE类型.但是,Win32保留了与源兼容性相同的类型名称.

  • 所有 Win32 HANDLE 都是内核对象表的整数索引;它们不是指针。 (2认同)