I've created a server
project in Windows 7 using winsock
library. However, My friend want to use this project in Ubuntu
with Code::Blocks
framework. When I move the project to Ubuntu
, I realize that there's no winsock
library!! So, I want to ask for a suggestion to use winsock
lib in Ubuntu or a way to run my project in ubuntu
. Thanks!
问问题
1422 次
1 回答
1
而不是与 ws2_32 库(windows 上的 winsock)链接,而是需要链接 glibc,这在使用 g++/gcc 构建时总是这样做。
但是,您需要用#ifdef 替换一些系统调用。例如在 linux 上你有 close() 而不是 closesocket(),ioctl() 而不是 ioctlsocket() 等等。
尝试在您的代码中使用此块:
#if defined(__unix__)
typedef int SOCKET;
#define closesocket(i) close(i)
#define ioctlsocket(i,l,ul) ioctl(i,l,ul)
#endif
对于您的套接字,您将需要使用 typedef SOCKET。
于 2012-07-16T19:39:02.847 回答