Windows和Unix-like系统中socket的一些区别和用法
最近因为要处理UPnP
库所涉及的socket
层次抽象,于是专门查看和测试了部分Windows和Unix-like系统中socket用法。总体来说,两者之间相似度很高(毕竟最初Windows上的socket方法就是从Unix系统中移植过去的),但是细节之间的差异也不小。当从Windows向Unix(Linux)系统移植或者从Unix(Linux)系统向Windows移植一个使用了socket的应用时,有些差异可以使用typedef
、#define
等方式来消除,但是有些不同用法却需要对主要代码进行改动。
这里只会记录部分我查看的或测试过的结果。下面是我用于测试的三台主机所用的系统:
- Microsoft Windows 10 专业版(10586.36)
- Apple OS X Yosemite(10.10.5)
- Microsoft Windows 10 专业版(10586.122)
其中两个Windows系统的主机连接到了同一台交换机上;而OS X系统的主机则使用无线网络连接到其中一个Windows系统创建的热点。