0

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!

4

1 回答 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 回答