QT使用paho.mqtt.embedded-c-master庫遇到getaddrinfo函數返回10093的解決方法

參考鏈接:https://blog.csdn.net/shufac/article/details/51992274


在使用QT測試mqtt的嵌入式版本C庫時,發現無法連接上服務器,最後定位到getaddrinfo返回結果爲10093,程序往下運行就結束了。

因爲這是在win7下操作的,所以要添加WSAStartup,linux沒有測試,按網友反映不需要添加下面的東西

我的解決方法是:

1、transport_open()函數一開始插入如下代碼:

WSADATA wsaData;//2018-05-03 by CC
WSAStartup(MAKEWORD(2, 2), &wsaData);//2018-05-03 by CC


2、transport_close()函數return之前加入

WSACleanup();//2018-05-03 by CC


3、transport_sendPacketBuffer()函數中進行如下修改

//    rc = write(sock, buf, buflen);
    rc=send(sock,buf,buflen,0);

將write替換爲send,雖然不知道原因,但這樣就不會報錯


然後編譯運行就沒問題了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章