2012-07-10 34 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

相關問題