国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

libevent:windows環(huán)境配置+QT使用

這篇具有很好參考價(jià)值的文章主要介紹了libevent:windows環(huán)境配置+QT使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄

libevent是什么

編譯

QT使用

測(cè)試代碼


  • libevent是什么

Fast portable non-blocking network programming with Libevent

http://www.wangafu.net/~nickm/libevent-book/TOC.html

這篇文檔講的很清楚,尤其是Chapter 1: A tiny introduction to asynchronous IO.,基本上講清楚了大多數(shù)的內(nèi)容

  • 編譯

環(huán)境:

1、win10 64位
2、vs2015專業(yè)版(nmake)/Cmake
3、libevent 2.1.11(官方下載鏈接)
4、libevent解壓的文件夾目錄為:“E:\libevent\libevent-2.1.11-stable”

?參考文章:?vs2015編譯方式和cmake編譯方式.

  • QT使用

根據(jù)編譯方式不同,配置QT環(huán)境.以下使用VS2015方式

創(chuàng)建項(xiàng)目libevent_test.

新建libevent目錄下創(chuàng)建libevent.pri文件,并在libevent_test.pro文件中添加

QT       +=  network

INCLUDEPATH += $$PWD/libevent  #通過(guò)路徑添加子文件內(nèi)容
include($$PWD/libevent/libevent.pri) #添加子文件夾所需pri文件

將編譯生成的文件放置于libevent目錄下

E:\libevent\libevent-2.1.11-stable\include下? ? ? ? ? ? ? ? ? ? ? ??event2文件夾及其內(nèi)文件

E:\libevent\libevent-2.1.11-stable\WIN32-Code\nmake下? ?evconfig-private.h文件和event2文件夾及其內(nèi)文件

E:\libevent\libevent-2.1.11-stable下? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?libevent.lib,libevent_core.liblibevent_extras.lib文件

?libevent.pri文件添加

INCLUDEPATH += -L$$PWD
LIBS += -ladvapi32 -lws2_32 -lwsock32
LIBS += -L$$PWD/ -llibevent -llibevent_core -llibevent_extras
  • 測(cè)試代碼

?main.cpp

#include <QApplication>
#include <QDebug>
#include <WinSock2.h>
#include <windows.h>
#include "include/event2/listener.h"
#include "include/event2/buffer.h"
#include "include/event2/bufferevent.h"
#include "include/event2/event.h"
#include "include/event2/event_compat.h"
#pragma comment(lib, "ws2_32.lib")

static  void echo_read_cb(struct bufferevent *bev,void *ctx)
{
    struct evbuffer *input = bufferevent_get_input(bev);
    struct evbuffer *output = bufferevent_get_output(bev);

    evbuffer_add_buffer(output,input);
    qDebug() << " port  read " ;
}

static  void echo_event_cb(struct bufferevent *bev,short events,void *ctx)
{
    if(events & BEV_EVENT_ERROR)
        qDebug()<< "error form bufferevent";
    if(events & (BEV_EVENT_EOF | BEV_EVENT_ERROR))
        bufferevent_free(bev);
}

static  void accept_conn_cb(struct evconnlistener *listener,evutil_socket_t fd,struct sockaddr *address,int socklen,void *ctx)
{
    struct  event_base *base = evconnlistener_get_base(listener);
    struct bufferevent *bev = bufferevent_socket_new(base,fd,BEV_OPT_CLOSE_ON_FREE);

    bufferevent_setcb(bev,echo_read_cb,NULL,echo_event_cb,NULL);
    bufferevent_enable(bev,EV_READ|EV_WRITE);
    qDebug() << " port  connect ";
}

static  void accept_error_cb(struct evconnlistener *listener,void *ctx)
{
    struct event_base *base = evconnlistener_get_base(listener);
    event_base_loopexit(base,NULL);
}

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    WORD sockVerson = MAKEWORD(2, 2);
    WSADATA wsaData;
    if (WSAStartup(sockVerson, &wsaData))
    {
        qDebug() << "init WinSock fail";
        return 1;
    }

    qDebug() << "init WinSock yes";
    struct event_base *base;
    struct evconnlistener *listener;
    struct sockaddr_in sin;

    int port = 9876;

    base = event_base_new();

    memset(&sin,0,sizeof(sin));
    sin.sin_family = AF_INET;
    sin.sin_addr.s_addr = htonl(0);
    sin.sin_port = htons(port);

    listener = evconnlistener_new_bind(base,accept_conn_cb,NULL,
                                       LEV_OPT_CLOSE_ON_FREE|LEV_OPT_REUSEABLE,-1,(struct sockaddr*)&sin,sizeof(sin));
    if(!listener)
    {
        qDebug()<<"could't create listener";
        return 1;
    }
    evconnlistener_set_error_cb(listener,accept_error_cb);
    event_base_dispatch(base);

    qDebug()<<"thread quit";

    return a.exec();
}

驗(yàn)證連接

libevent:windows環(huán)境配置+QT使用,qt,開(kāi)發(fā)語(yǔ)言,libevent

telnet 連接?

libevent:windows環(huán)境配置+QT使用,qt,開(kāi)發(fā)語(yǔ)言,libevent

連接成功

libevent:windows環(huán)境配置+QT使用,qt,開(kāi)發(fā)語(yǔ)言,libevent文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-596224.html

到了這里,關(guān)于libevent:windows環(huán)境配置+QT使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Windows下的QT系統(tǒng)開(kāi)發(fā)環(huán)境搭建

    Windows下的QT系統(tǒng)開(kāi)發(fā)環(huán)境搭建

    ????????QT是一款由Qt?Company開(kāi)發(fā)的跨平臺(tái)C++圖形用戶界面 應(yīng)用程序 開(kāi)發(fā)框架。它既可以開(kāi)發(fā) GUI 程序,也可用于開(kāi)發(fā)非GUI程序,比如 控制臺(tái) 工具和服務(wù)器。Qt是面向?qū)ο蟮目蚣?,使用特殊?代碼 生成擴(kuò)展(稱為元對(duì)象編譯器(Meta?Object?Compiler,?moc))以及一些宏,Qt很容

    2024年02月09日
    瀏覽(25)
  • Qt 配置 ROS 開(kāi)發(fā)環(huán)境

    Qt 配置 ROS 開(kāi)發(fā)環(huán)境

    原生的 Qt 框架是無(wú)法方便快捷地開(kāi)發(fā) ROS 項(xiàng)目的(比如不能創(chuàng)建 ROS 工作空間和功能包)。為此,ROS industrial提供了一個(gè)基于 Qt Creator 的 ROS 集成開(kāi)發(fā)環(huán)境插件 —— ros_qtc_plugin ,可以幫助 ROS 開(kāi)發(fā)人員在 Qt Creator 中更輕松地編寫、調(diào)試和測(cè)試 ROS 程序。 本文將著手探討如何在

    2024年02月14日
    瀏覽(14)
  • windows11下Qt6.5開(kāi)發(fā)環(huán)境安裝及QT for Android環(huán)境搭建(含虛擬機(jī)的創(chuàng)建)

    windows11下Qt6.5開(kāi)發(fā)環(huán)境安裝及QT for Android環(huán)境搭建(含虛擬機(jī)的創(chuàng)建)

    最近想升級(jí)Qt6.5及順便配置Android開(kāi)發(fā)環(huán)境。于是在網(wǎng)上找了各種教程,結(jié)果在配置Android開(kāi)發(fā)環(huán)境都以失敗告終。最終花了很長(zhǎng)時(shí)間才搞掂。接下來(lái)分享比較好的安裝方法以及安裝注意事項(xiàng)。 建議用中科大或清華的鏡像下載在線安裝器,官網(wǎng)的很慢。鏈接如下: 下載在線安裝

    2024年02月13日
    瀏覽(36)
  • 記錄:Qt Creator 10配置安卓開(kāi)發(fā)環(huán)境

    記錄:Qt Creator 10配置安卓開(kāi)發(fā)環(huán)境

    Qt Creator 現(xiàn)在的安卓開(kāi)發(fā)環(huán)境配置相比老版本方便了不少,本文以目前在線安裝版的 Qt Creator 10.0.2 + Qt 5.15 / Qt 6.5 為例做演示(有些文件可能會(huì)因?yàn)榫W(wǎng)絡(luò)問(wèn)題需要科學(xué)上網(wǎng)才能下載)。 https://adoptium.net/zh-CN/temurin/releases/ Oracle 的 JDK 有商業(yè)授權(quán)問(wèn)題,所以直接下 OpenJDK 就行了。

    2024年02月10日
    瀏覽(23)
  • windows下qt creator 配置編譯環(huán)境gcc,g++,gdb,cmake

    windows下qt creator 配置編譯環(huán)境gcc,g++,gdb,cmake

    MSVC :即Microsoft Visual C++ Compiler,即微軟自己的編譯器 MinGW :我們都知道GNU在Linux下面鼎鼎大名的gcc/g++,MinGW則是指Minimalist GNU for Windows的縮寫 這里我們選擇MinGW,至于Qt中,這兩種模式的區(qū)別,自行查閱相關(guān)資料 在Qt 安裝完成之后,gcc.exe,g++.exe,qmake.exe就已經(jīng)有了,我們可

    2024年02月09日
    瀏覽(25)
  • Qt5.15.2安卓Android項(xiàng)目開(kāi)發(fā)環(huán)境配置

    官方下載:https://download.qt.io/archive/qtcreator/4.11/4.11.2/ 鏡像下載:https://mirrors.cloud.tencent.com/qt/archive/qtcreator/4.11/4.11.2/ 官方更新器內(nèi)部下載 參考:https://blog.csdn.net/weixin_41013202/article/details/129957693 https://adoptium.net/zh-CN/temurin/releases/ (1) Android SDK Platform 最新版(現(xiàn)在是33) (2)

    2024年02月14日
    瀏覽(22)
  • Ubuntu 20.04下安裝配置Qt開(kāi)發(fā)環(huán)境的步驟

    下面是在Ubuntu 20.04下安裝配置Qt開(kāi)發(fā)環(huán)境的步驟: 安裝Qt Creator 在終端中輸入以下命令以安裝Qt Creator: 在終端中輸入以下命令以安裝Qt 5開(kāi)發(fā)庫(kù): 安裝g++和gcc編譯工具 配置Qt Creator 打開(kāi)Qt Creator,進(jìn)入“Tools”菜單,選擇“Options”,在彈出的對(duì)話框中選擇“Build Run”,然后選擇

    2024年02月15日
    瀏覽(38)
  • 1. linux系統(tǒng)下在QT中配置OPenCV開(kāi)發(fā)環(huán)境

    1. linux系統(tǒng)下在QT中配置OPenCV開(kāi)發(fā)環(huán)境

    1. 說(shuō)明: 在Linux系統(tǒng)下配置OpenCV的開(kāi)發(fā)環(huán)境,需要在官網(wǎng)上下載源碼,并使用CMake工具對(duì)源碼進(jìn)行編譯,與在Windows系統(tǒng)中配置相比復(fù)雜許多,本文linux系統(tǒng)為linux minit,opencv是最新版本4.7.0,不過(guò)對(duì)于linux和opencv的版本要求好像不高。 效果展示: 2. 配置步驟: 2.1 第一步:下載

    2024年02月16日
    瀏覽(21)
  • Qt5.12.6配置Android Arm開(kāi)發(fā)環(huán)境(Linux)

    Qt5.12.6配置Android Arm開(kāi)發(fā)環(huán)境(Linux)

    1.安裝jdk 2.安裝android studio 3.安裝sdk 與ndk? 設(shè)置代理 ?安裝SDK工具 ?安裝SDK Platform 安裝QT? ?選擇JDK 1.8安裝路徑,SDK與NDK路徑 ?如出現(xiàn)Platform SDK或者Platform Build Tools未安裝,點(diǎn)擊Update Installed ?配置成功后可看到ARMv7與AMD-v8a kits Qt Version也可看到ARMv7與AMD-v8a? ?如果 有安裝了CMake,也

    2024年01月21日
    瀏覽(35)
  • Qt+GDAL開(kāi)發(fā)筆記(一):在windows系統(tǒng)mingw32編譯GDAL庫(kù)、搭建開(kāi)發(fā)環(huán)境和基礎(chǔ)Demo

    Qt+GDAL開(kāi)發(fā)筆記(一):在windows系統(tǒng)mingw32編譯GDAL庫(kù)、搭建開(kāi)發(fā)環(huán)境和基礎(chǔ)Demo

    若該文為原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明原文出處 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/131931309 上一篇:沒(méi)有了 下一篇:敬請(qǐng)期待… ??麒麟系統(tǒng)上做全球北斗定位終端開(kāi)發(fā),調(diào)試工具要做一個(gè)windows版本方便校對(duì),北斗GPS發(fā)過(guò)來(lái)的是大地坐標(biāo),應(yīng)用需要的是經(jīng)緯度坐標(biāo)

    2024年02月15日
    瀏覽(31)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包