道滘镇网站仿做防静电产品东莞网站建设技术支持

张小明 2026/3/3 0:38:21
道滘镇网站仿做,防静电产品东莞网站建设技术支持,附近计算机培训班咨询,1.网站建设基本流程是什么Windows11中使用VS2022编译运行libevent事件通知网络库 libevent事件通知库介绍 libevent 是一个异步事件通知软件库。libevent API 提供了一种机制#xff0c;可以在文件描述符上发生特定事件或超时后执行回调函数。此外#xff0c;libevent 还支持因信号或常规超时而触发…Windows11中使用VS2022编译运行libevent事件通知网络库libevent事件通知库介绍libevent 是一个异步事件通知软件库。libevent API 提供了一种机制可以在文件描述符上发生特定事件或超时后执行回调函数。此外libevent 还支持因信号或常规超时而触发的回调。下载libevent事件通知库源代码libevent事件通知库源代码目前托管在Github上其仓库地址为https://github.com/libevent/libevent安装git之后可以通过如下命令获取libevent源代码gitclone https://github.com/libevent/libevent.git或者gitclone gitgithub.com:libevent/libevent.git也可以直接下载libevent源代码的zip压缩包如下图所示libevent源代码的目录结果如下图所示Windows11中使用CMake和VS2022编译运行libevent库首先我们需要在Windows11上安装CMake和VS2022这里不再赘述CMake地址可以去官网https://cmake.org/下载VS2022可以去微软官网获取并下载安装。1.参考官方文档编译libevent库参考https://github.com/libevent/libevent官网的【CMake (Windows)】,如下图所示详情可以参考Building on Windows官方给的使用CMake编译libevent的命令如下md buildcdbuild cmake -GVisual Studio 10..# Or use any generator you want to use. Run cmake --help for a listcmake --build.--config Release# Or start libevent.sln and build with menu in Visual Studio.需要注意的是VS2022对应的cmake -G后面的是“Visual Studio 17”这个可以WinR打开Windows cmd命令行窗口输入cmake --help查询到如下图所示Visual Studio 版本我相信大多数人首先看到的是 Visual Studio 的发布年份因为 Microsoft 官方就是这么宣传的。例如你可以在官网下载页面看到 Visual Studio 2022、Visual Studio 2019 等等。但其实 Visual Studio 的版本也有一个更加普遍的 major.minor 版本控制方案主版本号会在每个发布年份递增。例如 VS 2010 是版本 10VS 2017 是版本 15VS 2019 是版本 16VS 2022 是版本 17。所以如果客户跟你说“我用的是 15 版本”那就意味着它是 Visual Studio 2017。请注意Visual Studio 版本的年份和主要版本之间没有任何关联只是 Visual Studio 2010 恰好也是版本 10。当然除了主版本号Visual Studio 还有次版本号。下表列出了目前主要版本的对应关系。发布年份实际版本号Visual Studio 201715.015.3Visual Studio 201916.016.1Visual Studio 202217.017.1所以我们最终在Windows11上使用CMake命令和VS2022安装libevent库的命令为我们在解压后的libevent-master源代码打开Windows cmd命令行依次执行如下命令md buildcdbuild cmake -GVisual Studio 17..# Or use any generator you want to use. Run cmake --help for a listcmake --build.--config Release# Or start libevent.sln and build with menu in Visual Studio.上述示例中“…”指的是包含 Libevent 源代码的目录。您可以通过创建其他构建目录从同一源代码树构建多个版本具有不同的编译时设置。因此强烈建议在使用 CMake 时采用“外部构建”out of source方式这样做的好处是不会将源代码目录弄乱可以针对win32/x64debug/release组合构建出不同平台不同位数的libevent lib动态或静态库而不是像 autoconf 的默认行为那样采用“内部构建”in source方式。如果你使用的是VS2015、VS2017、VS2026的话把17改成对应的数字即可。执行完上述命令后会在例如E:\projects\VS2022Porjects\CPlusExamples\MyGithubProjects\libevent-master\build目录下生成libevent.sln这个VS工程文件以及include、lib库和bin二进制可执行文件等如下图所示2.使用VS2022打开编译后的libevent项目使用VS2022打开E:\projects\VS2022Porjects\CPlusExamples\MyGithubProjects\libevent-master\build目录下的libevent.sln解决方案文件如下图所示这是一个使用cmake构建的libevent项目包含需要libevent的示例代码这里我们先将hello-world设置为启动项目然后运行查看hell-world项目的源代码/* This example program provides a trivial server program that listens for TCP connections on port 9995. When they arrive, it writes a short message to each client connection, and closes each connection once it is flushed. Where possible, it exits cleanly in response to a SIGINT (ctrl-c). */#includestring.h#includeerrno.h#includestdio.h#includesignal.h#ifndef_WIN32#includenetinet/in.h#ifdef_XOPEN_SOURCE_EXTENDED#includearpa/inet.h#endif#includesys/socket.h#endif#includeevent2/bufferevent.h#includeevent2/buffer.h#includeevent2/listener.h#includeevent2/util.h#includeevent2/event.hstaticconstcharMESSAGE[]Hello, World!\n;staticconstunsignedshortPORT9995;staticvoidlistener_cb(structevconnlistener*,evutil_socket_t,structsockaddr*,intsocklen,void*);staticvoidconn_writecb(structbufferevent*,void*);staticvoidconn_eventcb(structbufferevent*,short,void*);staticvoidsignal_cb(evutil_socket_t,short,void*);intmain(intargc,char**argv){structevent_base*base;structevconnlistener*listener;structevent*signal_event;structsockaddr_insin{0};#ifdef_WIN32WSADATA wsa_data;WSAStartup(0x0201,wsa_data);#endifbaseevent_base_new();if(!base){fprintf(stderr,Could not initialize libevent!\n);return1;}sin.sin_familyAF_INET;sin.sin_porthtons(PORT);listenerevconnlistener_new_bind(base,listener_cb,(void*)base,LEV_OPT_REUSEABLE|LEV_OPT_CLOSE_ON_FREE,-1,(structsockaddr*)sin,sizeof(sin));if(!listener){fprintf(stderr,Could not create a listener!\n);return1;}signal_eventevsignal_new(base,SIGINT,signal_cb,(void*)base);if(!signal_event||event_add(signal_event,NULL)0){fprintf(stderr,Could not create/add a signal event!\n);return1;}event_base_dispatch(base);evconnlistener_free(listener);event_free(signal_event);event_base_free(base);printf(done\n);return0;}staticvoidlistener_cb(structevconnlistener*listener,evutil_socket_t fd,structsockaddr*sa,intsocklen,void*user_data){structevent_base*baseuser_data;structbufferevent*bev;bevbufferevent_socket_new(base,fd,BEV_OPT_CLOSE_ON_FREE);if(!bev){fprintf(stderr,Error constructing bufferevent!);event_base_loopbreak(base);return;}bufferevent_setcb(bev,NULL,conn_writecb,conn_eventcb,NULL);bufferevent_enable(bev,EV_WRITE);bufferevent_disable(bev,EV_READ);bufferevent_write(bev,MESSAGE,strlen(MESSAGE));}staticvoidconn_writecb(structbufferevent*bev,void*user_data){structevbuffer*outputbufferevent_get_output(bev);if(evbuffer_get_length(output)0){printf(flushed answer\n);bufferevent_free(bev);}}staticvoidconn_eventcb(structbufferevent*bev,shortevents,void*user_data){if(eventsBEV_EVENT_EOF){printf(Connection closed.\n);}elseif(eventsBEV_EVENT_ERROR){printf(Got an error on the connection: %s\n,strerror(errno));/*XXX win32*/}/* None of the other events can happen here, since we havent enabled * timeouts */bufferevent_free(bev);}staticvoidsignal_cb(evutil_socket_t sig,shortevents,void*user_data){structevent_base*baseuser_data;structtimevaldelay{2,0};printf(Caught an interrupt signal; exiting cleanly in two seconds.\n);event_base_loopexit(base,delay);}上面代码的作用就是启动一个TCP服务端本机端口号为9995有客户端连接时发送Hello, World!\n字符串给该客户端同时可以响应中断信号如CtrlC会打印Caught an interrupt signal; exiting cleanly in two seconds.\n字符串最后会打印done。先启动完TCP服务端hello-world程序后使用网络调试助手开启TCP客户端服务端连接IP地址设置为127.0.0.1端口号设置为9995运行结果如下图所示参考资料https://github.com/libevent/libeventBuilding libevent on Windowshttps://www.linuxfromscratch.org/blfs/view/svn/basicnet/libevent.htmlhttps://github.com/microsoft/vcpkgC Library Manager for Windows, Linux, and MacOSvcpkg 文档vcpkg 概述https://vcpkg.io/en/vcpkg 是一个免费的 C/C 包管理器用于获取和管理库。您可以从 2732 个开源库中进行选择一步完成下载和构建或者添加您自己的私有库来简化构建过程。它由 Microsoft C 团队和开源贡献者共同维护。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设公司果动建设项目

Qwen3-0.6B:轻量级大模型如何重塑2025企业AI应用格局 【免费下载链接】Qwen3-0.6B Qwen3 是 Qwen 系列中最新一代大型语言模型,提供全面的密集模型和混合专家 (MoE) 模型。Qwen3 基于丰富的训练经验,在推理、指令遵循、代理能力和多语言支持方…

张小明 2025/12/30 19:46:31 网站建设

jsp网站首页怎么做WordPress互联

Tiled地图渲染性能瓶颈诊断与优化实战指南 【免费下载链接】tiled 项目地址: https://gitcode.com/gh_mirrors/til/tiled 你是否曾经遇到过这样的场景:精心设计的Tiled地图在游戏中运行时帧率骤降,玩家反馈卡顿严重?这往往是地图渲染…

张小明 2026/1/25 5:41:52 网站建设

招标网站免费网站建设找业主签字模板

第一章:环境监测中趋势检验的核心意义 在环境科学与生态保护领域,长期监测数据的趋势分析是评估生态系统健康状况、识别污染源以及制定政策干预措施的关键依据。趋势检验不仅帮助研究人员判断环境变量(如空气质量指数、水体pH值、温室气体浓度…

张小明 2026/1/12 11:11:50 网站建设

大连网站建设设计公司站长统计app最新版本2023

深度解析Qwen3-VL-30B:300亿参数背后的视觉语言黑科技 在自动驾驶系统需要实时判断“前方施工围挡是否影响变道”、医生希望AI能直接从X光片中指出病灶区域并推测病因、电商平台用户上传一张北欧风装修图却期望推荐风格一致的沙发时——我们早已超越了对图像分类或文…

张小明 2025/12/30 19:48:47 网站建设

网站百度搜索第一页毕业设计网站选题

在数字化转型加速的2025年,软件交付周期持续压缩,自动化测试已成为质量保障的核心环节。然而,许多测试团队正面临脚本维护成本高、环境稳定性差、技术债累积等效率瓶颈。本指南结合行业最佳实践,为测试从业者提供一套从工具链优化…

张小明 2025/12/30 19:48:51 网站建设

数据网站排名富阳网站建设服务

终极指南:d2s-editor暗黑2存档修改工具完整使用教程 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 暗黑破坏神2存档编辑器d2s-editor作为当前最专业的D2R修改工具,为单机玩家提供了完整的角色定制解决方…

张小明 2025/12/30 19:49:07 网站建设