我使用server
库在Windows 7中创建了一个winsock
项目。但是,我的朋友希望在Ubuntu
Code::Blocks
框架中使用此项目。当我将项目移动到Ubuntu
时,我意识到没有winsock
库!所以,我想要一个建议在Ubuntu中使用winsock
lib或者在ubuntu
中运行我的项目。谢谢!
答案 0 :(得分: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。