Window 和 Ubuntu ENET下载编译

Window 和 Ubuntu ENET下载编译

大家都知道UDP这个东西太不可靠了,存在着乱序,丢包,包重复等缺点,但它的速度快,包有界等优点,但在实际编程中要自己处理乱序啊之类的问题会发疯 的。也许大家说用TCP就得了,第一点TCP的速度比较慢,第二个TCP是一个数据流一样的东西,我们要传数据的话还得处理数据的分界问题,也挺麻烦的。
针对这个问题,ENET这个库实现了一个性能介于TCP与UDP之间,完成可靠(不丢包,按序),保持数据的分界的优点。编程起来也挺方便的。下载到http://enet.bespin.org/,目前最新版本是1.3.15,然后按照说明编译出库出来。
ENet的目的是提供一个相对轻便、简单和强大的网络通信层的UDP(用户数据报协议)。 它提供的主要功能是可选的、可靠的、顺序的数据包发送。
ENet省略了一些更高层次的网络功能,如身份验证、加密,尤其特定于应用程序的其他类似任务。库文件灵活,轻便,容易嵌入。

1. Window下的 Enet编译
ENet官网给出了安装ENet的具体方法,翻译如下:
您可以简单地使用包含的“enet.lib”或“enet64.lib”静态库。但是,如果您希望自己创建库,那么适用以下说明:有一个包含MSVC 6项目(enet.dsp),您可以使用它来构建合适的库文件。或者,您可以简单地将所有ENet源文件拖到您的主项目中。
您必须链接到Winsock2库,因此请确保将ws2_32.lib和winmm.lib添加到库列表(项目设置|链接|对象/库模块)。
加载包含的enet.dsp。如果您使用的是MSVC的新版本,MSVC可能会要求您将其转换 - 只需进行转换并将生成的项目保存为“enet”或类似文件即可。生成此项目后,它将输出一个“enet.lib”文件到“Debug /”或“Release /”目录,具体取决于您选择要构建的配置。默认情况下,它应该产生“Debug / enet.lib”。
然后,您可以将生成的“enet.lib”文件和“include /”目录中找到的头文件复制到其他项目中,并将其添加到其库项目列表中。确保也如上所述链接“ws2_32.lib”和“winmm.lib”。
这边直接附上一位大佬编译好的,亲测可用:可靠的UDP网络库_eNet(安装包+教程)
2. Ubuntu 下的ENet下载和编译
(1)下载ENet源文件

git clone  https://github.com/lsalzman/enet.git

Window 和 Ubuntu ENET下载编译_第1张图片

(2)使用 automake 和 autoconf 构建系统环境。

apt-get install automake  //下载automake,如果有就不需要下载
autoreconf -vfi (ENet的下载位置) //构建系统环境

构建时可能出现的错误,
configure.ac:10:error possibly underfined macro :AC-PROG-LIBIOOL  
... please use m4-pattern-allow 
解决方案:
sudo apt-get install libtool   //下载libtool

Window 和 Ubuntu ENET下载编译_第2张图片
(3)进入ENet ,执行 ./configure
(4)执行 make 命令
(5)执行 make install ,将不同的文件放到文件系统中。如果有错误,可以进入root用户执行。Window 和 Ubuntu ENET下载编译_第3张图片
(6)进入 /usr/local/lib下查看,可看到以libenet开头的.so文件
在这里插入图片描述

3. 结束
这样在Windows下和Ubuntu下都实现了ENet库的编译,编写与2020年08月01日

你可能感兴趣的:(Linux,ENet,linux,网络)