我创建了一个 server
在 Windows 7 中使用 winsock
进行项目图书馆。但是,我的 friend 想在 Ubuntu
中使用这个项目与 Code::Blocks
框架。当我将项目移至 Ubuntu
,我意识到没有winsock
图书馆!!所以,我想请教一个使用 winsock
的建议。 Ubuntu 中的 lib 或在 ubuntu
中运行我的项目的方法.谢谢!
最佳答案
而不是与 ws2_32 库(windows 上的 winsock)链接,而是需要链接 glibc,而在使用 g++/gcc 构建时总是这样做。
但是,您需要用#ifdef 替换一些系统调用。
例如在 linux 上你有 close() 而不是 closesocket(),ioctl() 而不是 ioctlsocket() 等等。
尝试在您的代码中使用此 block :
#if defined(__unix__)
typedef int SOCKET;
#define closesocket(i) close(i)
#define ioctlsocket(i,l,ul) ioctl(i,l,ul)
#endif
对于您的套接字,您将需要使用 typedef SOCKET。
关于ubuntu - 有没有办法将winsock lib从windows移动到ubuntu?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11405962/