有人能告诉我INET Socket和其他Socket之间的区别吗?
是否有C#库可让我们使用INET Socket?
我试图找出它是什么,但我没有找到任何有用的东西。我怀疑它来自UNIX世界。
套接字只是通信终点的抽象表示。原始实体之间的通信可能使用不同的方法进行通信。在Linux中,INET套接字是基于IP协议的互联网套接字,但还有许多其他类型的套接字。我最近需要处理的一种套接字是Netlink套接字,它用作用户进程和Linux内核之间的IPC机制。与使用IP地址和端口的INET套接字不同,Netlink套接字使用Linux进程ID来标识通信方。在任何标准的Linux机器上,您可以打开文件/usr/include/linux/socket.h并查找AF_MAX。它是一个宏,给出了当前套接字API支持的协议族数量。在我的机器上,这个数字是37。
我不知道Windows API中是否有称为INET套接字的东西。我没有为Windows做过太多开发。
在实例化Socket对象时,您需要指定Socket的类型:
var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
我不知道什么是INET套接字(我能找到的最接近的东西是如何将本地Unix套接字映射到Inet套接字?),但.NET Framework在System.Net.Sockets命名空间中支持套接字,特别是Socket类。
INET
指的是InterNetwork,代表“IPv4地址”,而InterNetworkV6代表“IPv6地址”。
这类似于Python中的AF-INET
代表IPv4,AF-INET6
代表IPv6。