ubuntu - 有没有办法将winsock lib从windows移动到ubuntu?

标签 ubuntu codeblocks winsock2

我创建了一个 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/

相关文章:

c++ - 在 Windows 中使用 C++ 清除控制台

c++ - 当一个功能完成另一个功能打开时我该怎么办?

c++ - 我的 ClientConnection 类有什么问题? C++

c++ - ws2_32.lib vs. libws2_32.a,有什么区别以及如何将 libws2_32 链接到 NB 项目?

c++ - Cassandra CPP 驱动程序

Ubuntu 上的 PHP APC 安装失败

ubuntu - npm install laravel-mix 在 ubuntu 上失败 - 在 gifsicle 上安装后失败

c++ - 在 Windows XP 和 CodeBlocks 上延迟加载 DWMAPI

mysql - 我正在使用 Ubuntu、XAMPP、MySQL 和 Geany。使用 fopen() 时遇到问题;

python - 使用 Winsock 获取套接字列表