我正在尝试在Windows 中使用socket.h 函数。本质上,我目前正在查看示例代码https://beej.us/guide/bgnet/html/multi/clientserver.html#datagram https://beej.us/guide/bgnet/html/multi/clientserver.html#datagram。我知道 socket.h 是一个 Unix 函数——在编译此示例代码时我是否可以轻松模拟该环境?不同的 IDE/编译器会改变什么吗?
否则,我想我需要利用虚拟化 Linux 环境,这可能是最好的,因为代码很可能在 UNIX 环境中运行。
Thanks.
您有两个选择:
- Use Cygwin http://www.cygwin.com/(Unix 仿真库)。
- Port to Winsock http://msdn.microsoft.com/en-us/library/ms740673(v=VS.85).aspx(Windows 标准库)。
Cygwin:让您几乎不受影响地编译 Unix 源代码,但将您与 Cygwin 模拟库联系在一起。这有两个含义:总体性能(不仅仅是网络)可能达不到最佳性能;并且目标环境必须(在运行时)安装 Cygwin DLL。
Winsock:这个需要你更换sys/socket.h
(BSD 套接字库,TCP/IP 堆栈的 UNIX 标准)winsock2.h
,并重写代码的某些部分 - 不多,但有一些。
一些具有有价值信息的相关问题:
winsock 和 BSD 套接字实现之间的差异 https://stackoverflow.com/questions/1383286/differences-between-winsock-and-bsd-socket-implementations
关于 Cygwin[Linux in Windows] 的一些问题(套接字、线程、其他编程和 shell 问题) https://stackoverflow.com/questions/2087435/cygwin-socket-thread-other-programming-issues-some-question-about-cygwin
Winsock 的示例? https://stackoverflow.com/questions/2399377/examples-for-winsock
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)