2012-07-10 90 views
0

我在Windows 7中使用winsock库创建了server项目。但是,我的朋友想用这个项目在UbuntuCode::Blocks框架。当我将该项目移动到Ubuntu时,我意识到没有winsock库!所以,我想问一个建议,在Ubuntu中使用winsock lib或者在ubuntu中运行我的项目。谢谢!有没有办法将winsock从Windows移到Ubuntu?

回答

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。

+0

Yeap!我尝试着!谢谢! – 2012-07-17 00:07:43

相关问题