2017-08-15 38 views
0

我面临一个问题,在Windows下使用cygwin和套接字。 该代码在Ubuntu中正常工作,但当我在Windows下运行它时,套接字将无法打开(错误10093),因为没有进行WSAStartup调用。但是,当我包含WSAStartup的winsock.h时,我甚至不能编译,因为在winsock和unistd中有int select(int, _types_fd_set*, _types_fd_set*, _types_fd_set*, PTIMEVAL)的冲突声明。Windows中的套接字与cygwin

然而,没有人知道一种方法来获取与cygwin运行套接字?

感谢

+0

你应该更好地坚持'boost :: asio'。 – user0042

+1

作为一种解决方法,您可以创建单独的文件,其中包含'winsock.h',但不包括'unistd.h',并在那里执行winsock初始化。不过,不知道它应该如何工作。 – arrowd

+0

我宁愿不采取提升,因为我也希望它以后在Android上运行,我提高不是最好的Android ... Okey创建一个单独的文件可以工作,但不是最美丽的解决方案 – mstranne

回答

0

不要弄乱的cygwin与Windows库的一切工作正常!由于我没有包含任何windows lib,所以UNIX套接字工作正常。

感谢user4581301。

-1

放_winsock_deprecated_no_warnings在定义和的#include < winsock2.h>

+0

这是不工作... – mstranne

+0

你把#define放在预处理器中定义了吗?或者只是输入你的代码? – Ryan