2017-08-15 44 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