我正在尝试在Windows中使用socket.h函数.基本上,我目前正在查看https://beej.us/guide/bgnet/html/multi/clientserver.html#datagram上的示例代码.我知道socket.h是一个Unix函数 - 无论如何我在编译这个示例代码时可以轻松地模拟该环境吗?不同的IDE /编译器会改变什么吗?
否则,我想我需要利用虚拟化的Linux环境,这可能是最好的,因为代码最有可能在UNIX环境中运行.
谢谢.
我有一个使用的C程序getaddrinfo().它在Linux和Mac OS X上按预期工作.
我正在将它移植到Windows.
当我编译它(使用MinGW gcc)时,我收到以下警告:
ext/socket/socket.c: In function 'sl_tcp_socket_init':
ext/socket/socket.c:98:5: warning implicit declaration of function 'getaddrinfo' [-Wimplicit-function-declaration]
ext/socket/socket.c:104:9: warning implicit declaration of function 'freeaddrinfo' [-Wimplicit-function-declaration]
Run Code Online (Sandbox Code Playgroud)
然后整个事情无法链接到未定义的引用getaddrinfo()和freeaddrinfo().
现在,根据这个MSDN页面,getaddrinfo()Windows支持并位于头文件Ws2tcpip.h和库文件中Ws2_32.lib.
我包括Ws2tcpip.h并链接-lWs2_32,所以我不确定为什么这不起作用.