LinkIT One使用paho mqtt连接服务器失败 5C

背景描述:
使用LinkIT One基于paho的mqtt客户端,当代码执行到rc=client.connect(data);,超时然后返回rc=-1。
测试连接的服务端包括IBM Watson、中移OneNet还有自己搭建的mosquitto,都是一样的错误。查了一下paho的实现代码,把MQTTClient.h中的connect实现改了一下就connect成功了,但subscribe又超时并返回错误了(如下所示)。

在网上查到了和我类似的错误,貌似LinkIT One并不能使用paho的mqtt。但将mqtt客户端换成pubsub后却能够正常工作。
下面是我的测试代码(mqtt服务器是本地局域网的mosquitto)

 #include <LWiFi.h>
#include <LWiFiClient.h>
#include <IPStack.h>
#include <Countdown.h>
#include <MQTTClient.h>

#define WIFI_AP "SSID"
#define WIFI_PASSWORD "PASSWD"
#define WIFI_AUTH LWIFI_WPA

int port = 1883;
char servername[]="10.214.149.119";
char clientName[] = "myaccount";
char topicName[] = "@tp";
char userName[] = "myaccount";
char password[] = "12345";

LWiFiClient tcpClient;
IPStack ipstack(tcpClient);
MQTT::Client<IPStack, Countdown, 200> client = MQTT::Client<IPStack, Countdown, 200>(ipstack);

void messageArrived(MQTT::MessageData& md){
  MQTT::Message &message = md.message;
  char res[100];
  int len = message.payloadlen;
  strncpy(res, (char*)message.payload, len);
  res[len] = '\0';
  Serial.println(res);
}

void setup(){
  Serial.begin(9600);
  while(!Serial.available());
  InitWiFi();
  if (!client.isConnected())
    reconnect();
  int rc = client.subscribe(topicName, MQTT::QOS0, messageArrived);
  if (rc != 0)
    Serial.println(String("rc from MQTT subscribe is ")+rc);
  else
    Serial.println(String("rc from MQTT subscribe is ")+rc);
}

void loop(){
  Serial.println("loop");
  client.yield(100);
  delay(2000);
}

void InitWiFi(){
  LWiFi.begin();
  // Keep retrying until connected to AP
  Serial.println("Connecting to AP");
  while (0 == LWiFi.connect(WIFI_AP, LWiFiLoginInfo(WIFI_AUTH, WIFI_PASSWORD)))
  {
    Serial.println("Retry connect AP ... ");
    delay(1000);
  }
  Serial.println("Connected to AP");
}

void reconnect() {
  // Loop until we're reconnected
  if(!client.isConnected()) {
    int rc = ipstack.connect(servername, port);
    if (rc == 1){
      Serial.println("IPStack Success");  
    }else{
      Serial.println("IPStack Failed");
    }
    Serial.print("Connecting to IOT platform ...");
    MQTTPacket_connectData data = MQTTPacket_connectData_initializer;       
    data.MQTTVersion = 4;
    data.clientID.cstring = clientName;
    data.username.cstring = userName;
    data.password.cstring = password;
    rc = client.connect(data);
    if (rc == 0) {
      Serial.println( "[DONE]" );
    } else {
      Serial.println( "[FAILED]");
      delay(5000);
    }
  }
}

我的问题是:
有没有大神使用LinkIT One基于paho的mqtt实现了客户端,可以正常pub/sub话题,测试的mqtt代理可以是mosquitto或IBM Watson或中移OneNet?允许修改paho或LWiFiClient的源码?(我只要基于paho的实现)

提示:
1.通过之前在Arduino UNO、BeagleBone Black、树莓派2的实验感觉各种mqtt的代理基本都一样的,能在mosquitto上测试通过的基本都能在IBM Watson或OneNet上测试通过;
2.LinkIt One用pubsub测试没有问题,这说明LWiFiClient很大概率是没问题的,估计要修改paho的实现代码

1个回答

// 创建一个jsMQTT客户端实例,clientId是唯一标识符,地址和端口号为服务的地址和端口 client = new Paho.MQTT.Client(locatio

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

在arduino客户端的php echo输出ghost char

<div class="post-text" itemprop="text"> <p>I try to get a timeStamp from php page (<a href="http://www.honeyshare.cn/time.php" rel="nofollow">http://www.honeyshare.cn/time.php</a>) and use LinkIt ONE board which is Compatible with arduino as client.There is only one line code "echo time();" on php page.Then I get serial output like this</p> <pre><code>Connecting to AP Connecting to WebSite waiting HTTP response: HTTP/1.1 200 OK Date: Sun, 20 Dec 2015 09:17:26 GMT Server: Apache Vary: User-Agent,Accept-Encoding Connection: close Transfer-Encoding: chunked Content-Type: text/html 7 1450605837 0 disconnected by server </code></pre> <p>1450605837 is what I want.7 above this line and 0 below this line is ghost char.If I would not use echo and only write 1450605837 in php file as string, 7 or 0 will not show in the serial output.</p> <p>Here is LinkIt ONE board code</p> <pre><code>#include &lt;LTask.h&gt; #include &lt;LWiFi.h&gt; #include &lt;LWiFiClient.h&gt; #define WIFI_AP "XXXX" #define WIFI_PASSWORD "XXXXX" #define WIFI_AUTH LWIFI_WPA // choose from LWIFI_OPEN, LWIFI_WPA, or LWIFI_WEP. #define SITE_URL "www.honeyshare.cn" LWiFiClient c; void setup() { LWiFi.begin(); Serial.begin(115200); // keep retrying until connected to AP Serial.println("Connecting to AP"); while (0 == LWiFi.connect(WIFI_AP, LWiFiLoginInfo(WIFI_AUTH, WIFI_PASSWORD))) { delay(1000); } // keep retrying until connected to website Serial.println("Connecting to WebSite"); while (0 == c.connect(SITE_URL, 80)) { Serial.println("Re-Connecting to WebSite"); delay(1000); } // send HTTP request, ends with 2 CR/LF // Serial.println("send HTTP GET request"); c.println("GET /time.php HTTP/1.1"); c.println("Host: " SITE_URL); c.println("Connection: close"); c.println(); // waiting for server response Serial.println("waiting HTTP response:"); while (!c.available()) { delay(100); } } boolean disconnectedMsg = false; void loop() { // Make sure we are connected, and dump the response content to Serial while (c) { int v = c.read(); if (v != -1) { Serial.print((char)v); } else { Serial.println("no more content, disconnect"); c.stop(); while (1) { delay(1); } } } if (!disconnectedMsg) { Serial.println("disconnected by server"); disconnectedMsg = true; } delay(500); } </code></pre> <p>Is there any idea about this problem? thx</p> </div>

我的PDO适用于我的本地主机但不适用于我的主机[重复]

<div class="post-text" itemprop="text"> <div class="question-status question-originals-of-duplicate"> <p>This question already has an answer here:</p> <ul> <li> <a href="/questions/845021/how-can-i-get-useful-error-messages-in-php" dir="ltr">How can I get useful error messages in PHP?</a> <span class="question-originals-answer-count"> 26 answers </span> </li> <li> <a href="/questions/28754835/mysql-pdo-error-invalid-catalog-name-1046-no-database-selected" dir="ltr">Mysql - PDO Error - Invalid catalog name: 1046 No database selected</a> <span class="question-originals-answer-count"> 7 answers </span> </li> </ul> </div> <p>I am using a $_SERVER['REQUEST_URI'] to get a token which I then check in the database to get a link I have the same database table for both. Of course I changed the config.php But the problem is that Half of the script does not even appear</p> <p>I tried debugging by echo hi1 and hi2 hi1 appears but hi2 does not appear</p> <pre><code>$tokenplus = $_SERVER['REQUEST_URI']; $tokenit = substr("$tokenplus",1); include 'config.php'; echo "hi1"; //hi 1 should appear $stmt = $con -&gt; prepare ("SELECT * FROM links WHERE alias =? LIMIT 1"); $stmt-&gt; execute ( array($tokenit)); $row =$stmt -&gt; fetch(); $count = $stmt-&gt; rowCount(); echo "hi2"; //Hi 2 should appear if ($stmt-&gt; rowCount() &gt; 0) { $linkit = $row['url']; ?&gt; &lt;center&gt; &lt;script&gt; function enableBtn(){ document.getElementById("button1").disabled = false; } &lt;/script&gt; &lt;div class="g-recaptcha" data-sitekey="6LeX3a8UAAAAABnC7xJ9Qv7jxcRayrEcwjm4tnah" data-callback="enableBtn"&gt;&lt;/div&gt; &lt;form action = "&lt;?php echo 'http://www.'.$linkit;?&gt;" &gt; &lt;input class="btn btn-outline-primary btn-captcha m-4 disabled" type="submit" value="Click here to continue" id="button1" disabled="true"&gt; &lt;/form&gt; &lt;/center&gt; &lt;?php }else{ ?&gt;&lt;center&gt; &lt;?php echo 'The link was not found' ;?&gt;&lt;/center&gt; &lt;?php } ?&gt; </code></pre> </div>

无法使用composer安装软件包

<div class="post-text" itemprop="text"> <p>I am new to php and drupal world. I am trying to run our drupal application locally. I have installed composer. Also have configured minimum stability to be dev. When I try to run <strong>composer install</strong>, I get following error: <strong>The requested package package_name could not be found in any version, there may be a typo in the package name.</strong> It throws errors for all the packages.</p> <pre><code>{ "name": "aws/drupal", "description": "Project template for Drupal 8 sites built with BLT.", "type": "project", "minimum-stability": "dev", "prefer-stable": true, "require": { "acquia/blt": "^8.8", "composer/installers": "^1.0.24", "wikimedia/composer-merge-plugin": "~1.3", "drupal/pathauto": "^1.0", "drupal/viewfield": "3.x-dev", "drupal/easy_breadcrumb": "^1.0", "drupal/paragraphs": "^1.1", "drupal/token": "^1.0", "drupal/video_embed_field": "^1.5", "drupal/ctools": "^3.0", "drupal/google_analytics": "2.1", "drupal/entity_reference_revisions": "^1.3", "drupal/views_infinite_scroll": "^1.3", "drupal/field_group": "~1.0", "drupal/addtoany": "^1.8", "drupal/colorbox": "^1.4", "drupal/features": "^3.5", "drupal/rabbit_hole": "~1.0", "drupal/redirect": "~1.0", "drupal/honeypot": "~1.0", "drupal/maxlength": "1.x-dev", "drupal/menu_link_attributes": "^1@beta", "drupal/cog": "^1.8", "jackmoore/colorbox": "^1.6", "stevenwanderski/bxslider-4": "^4.2", "matthieua/WOW": "^1.1", "drupal/csv_serialization": "^1.0", "drupal/contact_storage_export": "^1.10", "drupal/contact_block": "~1.0", "drupal/require_login": "~1.0", "drupal/linkit": "^4.3", "drupal/menu_trail_by_path": "^1.1", "drupal/link_attributes": "^1.1", "drupal/migrate_plus": "^4.0", "drupal/migrate_tools": "^4.0", "drupal/ubercart": "^4.0", "drupal/better_exposed_filters": "^3.0@alpha", "drupal/uc_stripe": "^2.0@alpha" }, "require-dev": {}, "extra": { "enable-patching": true, "installer-paths": { "docroot/core": [ "type:drupal-core" ], "docroot/modules/contrib/{$name}": [ "type:drupal-module" ], "docroot/modules/custom/{$name}": [ "type:drupal-custom-module" ], "docroot/profiles/contrib/{$name}": [ "type:drupal-profile" ], "docroot/profiles/custom/{$name}": [ "type:drupal-custom-profile" ], "docroot/themes/contrib/{$name}": [ "type:drupal-theme" ], "docroot/themes/custom/{$name}": [ "type:drupal-custom-theme" ], "docroot/libraries/{$name}": [ "type:drupal-library", "type:bower-asset", "type:npm-asset" ], "drush/contrib/{$name}": [ "type:drupal-drush" ] }, "merge-plugin": { "require": [ "vendor/acquia/blt/composer.required.json", "vendor/acquia/blt/composer.suggested.json" ], "include": [ "blt/composer.overrides.json" ], "merge-extra": true, "merge-extra-deep": true, "merge-scripts": true, "replace": true }, "patches": { "drupal/core": { "Contextual links broken fix": "https://www.drupal.org/files/issues/contextual_links_broken-2033275-10.patch" }, "drupal/ubercart": { "Call to a member function label() on null": "https://www.drupal.org/files/issues/ubercart.call_to_a_member-2788963-10.patch" } }, "installer-types": [ "bower-asset", "npm-asset" ] }, "repositories": [ { "type": "package", "package": { "name": "jackmoore/colorbox", "version": "1.6.4", "type": "drupal-library", "dist": { "url": "https://github.com/jackmoore/colorbox/archive/master.zip", "type": "zip" } } }, { "type": "package", "package": { "name": "stevenwanderski/bxslider-4", "version": "4.2.12", "type": "drupal-library", "dist": { "url": "https://github.com/stevenwanderski/bxslider-4/archive/master.zip", "type": "zip" } } }, { "type": "package", "package": { "name": "matthieua/WOW", "version": "1.1.3", "type": "drupal-library", "dist": { "url": "https://github.com/matthieua/WOW/archive/master.zip", "type": "zip" } } } ] } </code></pre> <p>Thanks.</p> </div>

PHP将字符串转换为数组

<div class="post-text" itemprop="text"> <p>This may be asked several times but my case is a bit different.</p> <p>Let me start from the beginning.</p> <pre><code>$ck_data = db_select('ckeditor_settings', 'cs') -&gt;fields('cs', array('settings')) -&gt;condition('name', 'Advanced', '=') -&gt;execute() -&gt;fetchAssoc(); var_dump($ck_data); </code></pre> <p>Will give me...</p> <pre><code>array(1) { ["settings"]=&gt; string(2144) "a:33:{s:2:"ss";s:1:"2";s:7:"toolbar";s:606:"[ ['Source'], ['Cut','Copy','Paste','PasteText','PasteFromWord','-','SpellChecker','Scayt'], ['Undo','Redo','Find','Replace','-','SelectAll'], ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar'], ['Maximize','ShowBlocks'], '/', ['Format'], ['Bold','Italic','Underline','Strike','-','Subscript','Superscript','-','RemoveFormat'], ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'], ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl'], ['Link','Unlink','Anchor','Linkit','LinkToNode','LinkToMenu'] ]";s:6:"expand";s:1:"t";s:7:"default";s:1:"t";s:11:"show_toggle";s:1:"t";s:7:"uicolor";s:7:"default";s:12:"uicolor_user";s:7:"default";s:5:"width";s:4:"100%";s:4:"lang";s:2:"en";s:9:"auto_lang";s:1:"t";s:18:"language_direction";s:7:"default";s:15:"allowed_content";s:1:"t";s:19:"extraAllowedContent";s:0:"";s:10:"enter_mode";s:1:"p";s:16:"shift_enter_mode";s:2:"br";s:11:"font_format";s:35:"p;div;pre;address;h1;h2;h3;h4;h5;h6";s:17:"custom_formatting";s:1:"f";s:10:"formatting";a:1:{s:25:"custom_formatting_options";a:6:{s:6:"indent";s:6:"indent";s:15:"breakBeforeOpen";s:15:"breakBeforeOpen";s:14:"breakAfterOpen";s:14:"breakAfterOpen";s:15:"breakAfterClose";s:15:"breakAfterClose";s:16:"breakBeforeClose";i:0;s:10:"pre_indent";i:0;}}s:8:"css_mode";s:4:"none";s:8:"css_path";s:0:"";s:9:"css_style";s:5:"theme";s:11:"styles_path";s:0:"";s:11:"filebrowser";s:4:"none";s:17:"filebrowser_image";s:0:"";s:17:"filebrowser_flash";s:0:"";s:13:"UserFilesPath";s:5:"%b%f/";s:21:"UserFilesAbsolutePath";s:7:"%d%b%f/";s:21:"forcePasteAsPlainText";s:1:"t";s:13:"html_entities";s:1:"f";s:17:"scayt_autoStartup";s:1:"t";s:15:"theme_config_js";s:1:"f";s:7:"js_conf";s:0:"";s:11:"loadPlugins";a:1:{s:12:"drupalbreaks";a:5:{s:4:"name";s:12:"drupalbreaks";s:4:"desc";s:51:"Plugin for inserting Drupal teaser and page breaks.";s:4:"path";s:25:"%plugin_dir%drupalbreaks/";s:7:"buttons";a:1:{s:11:"DrupalBreak";a:2:{s:5:"label";s:11:"DrupalBreak";s:4:"icon";s:22:"images/drupalbreak.png";}}s:7:"default";s:1:"t";}}}" } </code></pre> <p>Now what I want is to get the value of <code>toolbar</code>.</p> <pre><code>$ck_settings = unserialize($ck_data['settings']); $ck_plugins = $ck_settings['toolbar']; var_dump($ck_plugins); </code></pre> <p>Will return...</p> <pre><code>string(606) "[ ['Source'], ['Cut','Copy','Paste','PasteText','PasteFromWord','-','SpellChecker','Scayt'], ['Undo','Redo','Find','Replace','-','SelectAll'], ['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar'], ['Maximize','ShowBlocks'], '/', ['Format'], ['Bold','Italic','Underline','Strike','-','Subscript','Superscript','-','RemoveFormat'], ['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'], ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock','-','BidiLtr','BidiRtl'], ['Link','Unlink','Anchor','Linkit','LinkToNode','LinkToMenu'] ]" </code></pre> <p>My question now is how can I convert <code>$ck_plugins</code> from string to array?</p> </div>

实现简单的文件系统

实验内容: 通过对具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简

MIPS单周期CPU-组成原理实验-华中科技大学

使用logisim布线完成的MIPS单周期CPU,可支持28条指令。跑马灯的代码已经装入了寄存器,可以直接开启时钟运行。

2019数学建模A题高压油管的压力控制 省一论文即代码

2019数学建模A题高压油管的压力控制省一完整论文即详细C++和Matlab代码,希望对同学们有所帮助

基于QT和OpenCV的五子棋实现源码

一个简单的五子棋应用,基于QT和OpenCV的实现源码,通过相邻棋子判断是否获胜,不包含人工智能算法,适合新手入门

Git 实用技巧

这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先commit然后再去push,而不是一条命令一次性搞定; 更多的开发者对Git已经入门,不过在遇到一些代码冲突、需要恢复Git代码时候就不知所措,这个时候哪些对 Git掌握得比较好的少数人,就像团队中的神一样,在队友遇到 Git 相关的问题的时候用各种流利的操作来帮助队友于水火。 我去年刚加入新团队,发现一些同事对Git的常规操作没太大问题,但对Git的理解还是比较生疏,比如说分支和分支之间的关联关系、合并代码时候的冲突解决、提交代码前未拉取新代码导致冲突问题的处理等,我在协助处理这些问题的时候也记录各种问题的解决办法,希望整理后通过教程帮助到更多对Git操作进阶的开发者。 本期教程学习方法分为“掌握基础——稳步进阶——熟悉协作”三个层次。从掌握基础的 Git的推送和拉取开始,以案例进行演示,分析每一个步骤的操作方式和原理,从理解Git 工具的操作到学会代码存储结构、演示不同场景下Git遇到问题的不同处理方案。循序渐进让同学们掌握Git工具在团队协作中的整体协作流程。 在教程中会通过大量案例进行分析,案例会模拟在工作中遇到的问题,从最基础的代码提交和拉取、代码冲突解决、代码仓库的数据维护、Git服务端搭建等。为了让同学们容易理解,对Git简单易懂,文章中详细记录了详细的操作步骤,提供大量演示截图和解析。在教程的最后部分,会从提升团队整体效率的角度对Git工具进行讲解,包括规范操作、Gitlab的搭建、钩子事件的应用等。 为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和方法,相信一定会对大家的前端技能进阶大有帮助。

实用主义学Python(小白也容易上手的Python实用案例)

原价169,限时立减100元! 系统掌握Python核心语法16点,轻松应对工作中80%以上的Python使用场景! 69元=72讲+源码+社群答疑+讲师社群分享会&nbsp; 【哪些人适合学习这门课程?】 1)大学生,平时只学习了Python理论,并未接触Python实战问题; 2)对Python实用技能掌握薄弱的人,自动化、爬虫、数据分析能让你快速提高工作效率; 3)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; 4)想修炼更好的编程内功,优秀的工程师肯定不能只会一门语言,Python语言功能强大、使用高效、简单易学。 【超实用技能】 从零开始 自动生成工作周报 职场升级 豆瓣电影数据爬取 实用案例 奥运冠军数据分析 自动化办公:通过Python自动化分析Excel数据并自动操作Word文档,最终获得一份基于Excel表格的数据分析报告。 豆瓣电影爬虫:通过Python自动爬取豆瓣电影信息并将电影图片保存到本地。 奥运会数据分析实战 简介:通过Python分析120年间奥运会的数据,从不同角度入手分析,从而得出一些有趣的结论。 【超人气老师】 二两 中国人工智能协会高级会员 生成对抗神经网络研究者 《深入浅出生成对抗网络:原理剖析与TensorFlow实现》一书作者 阿里云大学云学院导师 前大型游戏公司后端工程师 【超丰富实用案例】 0)图片背景去除案例 1)自动生成工作周报案例 2)豆瓣电影数据爬取案例 3)奥运会数据分析案例 4)自动处理邮件案例 5)github信息爬取/更新提醒案例 6)B站百大UP信息爬取与分析案例 7)构建自己的论文网站案例

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

Python界面版学生管理系统

前不久上传了一个控制台版本的学生管理系统,这个是Python界面版学生管理系统,这个是使用pycharm开发的一个有界面的学生管理系统,基本的增删改查,里面又演示视频和完整代码,有需要的伙伴可以自行下

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

linux“开发工具三剑客”速成攻略

工欲善其事,必先利其器。Vim+Git+Makefile是Linux环境下嵌入式开发常用的工具。本专题主要面向初次接触Linux的新手,熟练掌握工作中常用的工具,在以后的学习和工作中提高效率。

JAVA初级工程师面试36问(完结)

第三十一问: 说一下线程中sleep()和wait()区别? 1 . sleep()是让正在执行的线程主动让出CPU,当时间到了,在回到自己的线程让程序运行。但是它并没有释放同步资源锁只是让出。 2.wait()是让当前线程暂时退让出同步资源锁,让其他线程来获取到这个同步资源在调用notify()方法,才会让其解除wait状态,再次参与抢资源。 3. sleep()方法可以在任何地方使用,而wait()只能在同步方法或同步块使用。 ...

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

智鼎(附答案).zip

并不是完整题库,但是有智鼎在线2019年9、10、11三个月的试题,有十七套以上题目,普通的网申行测题足以对付,可以在做题时自己总结一些规律,都不是很难

Visual Assist X 破解补丁

vs a's'sixt插件 支持vs2008-vs2019 亲测可以破解,希望可以帮助到大家

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

JavaWEB商城项目(包括数据库)

功能描述:包括用户的登录注册,以及个人资料的修改.商品的分类展示,详情,加入购物车,生成订单,到银行支付等!另外还有收货地址的和我的收藏等常用操作.环境(JDK 1.7 ,mysql 5.5,Ecli

Python数据挖掘简易入门

&nbsp; &nbsp; &nbsp; &nbsp; 本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。

一学即懂的计算机视觉(第一季)

图像处理和计算机视觉的课程大家已经看过很多,但总有“听不透”,“用不了”的感觉。课程致力于创建人人都能听的懂的计算机视觉,通过生动、细腻的讲解配合实战演练,让学生真正学懂、用会。 【超实用课程内容】 课程内容分为三篇,包括视觉系统构成,图像处理基础,特征提取与描述,运动跟踪,位姿估计,三维重构等内容。课程理论与实战结合,注重教学内容的可视化和工程实践,为人工智能视觉研发及算法工程师等相关高薪职位就业打下坚实基础。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/26281 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,但是大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 下载方式:电脑登录https://edu.csdn.net/course/detail/26281,点击右下方课程资料、代码、课件等打包下载

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

课程主要面向嵌入式Linux初学者、工程师、学生 主要从一下几方面进行讲解: 1.linux学习路线、基本命令、高级命令 2.shell、vi及vim入门讲解 3.软件安装下载、NFS、Samba、FTP等服务器配置及使用

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

快速入门Android开发 视频 教程 android studio

这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

YOLOv3目标检测实战系列课程

《YOLOv3目标检测实战系列课程》旨在帮助大家掌握YOLOv3目标检测的训练、原理、源码与网络模型改进方法。 本课程的YOLOv3使用原作darknet(c语言编写),在Ubuntu系统上做项目演示。 本系列课程包括三门课: (1)《YOLOv3目标检测实战:训练自己的数据集》 包括:安装darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 (2)《YOLOv3目标检测:原理与源码解析》讲解YOLOv1、YOLOv2、YOLOv3的原理、程序流程并解析各层的源码。 (3)《YOLOv3目标检测:网络模型改进方法》讲解YOLOv3的改进方法,包括改进1:不显示指定类别目标的方法 (增加功能) ;改进2:合并BN层到卷积层 (加快推理速度) ; 改进3:使用GIoU指标和损失函数 (提高检测精度) ;改进4:tiny YOLOv3 (简化网络模型)并介绍 AlexeyAB/darknet项目。

Qt5 局域网通信软件(模仿QQ)

采用Qt5进行开发的局域网通信客户端+Server,界面模仿QQ的界面,聊天界面采用QWidget绘制的气泡!

Python数据清洗实战入门

本次课程主要以真实的电商数据为基础,通过Python详细的介绍了数据分析中的数据清洗阶段各种技巧和方法。

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

ANSI-VITA-46.0-2007(中文翻译版)_V1.0.pdf

ANSI-VITA 46.0 2007老版本的的英文版本的中文翻译版本,含目录,通过谷歌翻译进行文字翻译,翻译的不是很专业,对初学者理解VPX接口及协议有一定的帮助,后续会对翻译进行改进。

Java 最常见的 200+ 面试题:面试必备

这份面试清单是从我 2015 年做了 TeamLeader 之后开始收集的,一方面是给公司招聘用,另一方面是想用它来挖掘在 Java 技术栈中,还有那些知识点是我不知道的,我想找到这些技术盲点,然后修复它,以此来提高自己的技术水平。虽然我是从 2009 年就开始参加编程工作了,但我依旧觉得自己现在要学的东西很多,并且学习这些知识,让我很有成就感和满足感,那所以何乐而不为呢? 说回面试的事,这份面试...

MySQL数据库从入门到实战应用

限时福利1:购课进答疑群专享柳峰(刘运强)老师答疑服务 限时福利2:购课后添加学习助手(微信号:csdn590),按消息提示即可领取编程大礼包! 为什么说每一个程序员都应该学习MySQL? 根据《2019-2020年中国开发者调查报告》显示,超83%的开发者都在使用MySQL数据库。 使用量大同时,掌握MySQL早已是运维、DBA的必备技能,甚至部分IT开发岗位也要求对数据库使用和原理有深入的了解和掌握。 学习编程,你可能会犹豫选择 C++ 还是 Java;入门数据科学,你可能会纠结于选择 Python 还是 R;但无论如何, MySQL 都是 IT 从业人员不可或缺的技能! 【课程设计】 在本课程中,刘运强老师会结合自己十多年来对MySQL的心得体会,通过课程给你分享一条高效的MySQL入门捷径,让学员少走弯路,彻底搞懂MySQL。 本课程包含3大模块:&nbsp; 一、基础篇: 主要以最新的MySQL8.0安装为例帮助学员解决安装与配置MySQL的问题,并对MySQL8.0的新特性做一定介绍,为后续的课程展开做好环境部署。 二、SQL语言篇: 本篇主要讲解SQL语言的四大部分数据查询语言DQL,数据操纵语言DML,数据定义语言DDL,数据控制语言DCL,学会熟练对库表进行增删改查等必备技能。 三、MySQL进阶篇: 本篇可以帮助学员更加高效的管理线上的MySQL数据库;具备MySQL的日常运维能力,语句调优、备份恢复等思路。 &nbsp;

c语言项目开发实例

十个c语言案例 (1)贪吃蛇 (2)五子棋游戏 (3)电话薄管理系统 (4)计算器 (5)万年历 (6)电子表 (7)客户端和服务器通信 (8)潜艇大战游戏 (9)鼠标器程序 (10)手机通讯录系统

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

程序员的算法通关课:知己知彼(第一季)

【超实用课程内容】 程序员对于算法一直又爱又恨!特别是在求职面试时,算法类问题绝对是不可逃避的提问点!本门课程作为算法面试系列的第一季,会从“知己知彼”的角度,聊聊关于算法面试的那些事~ 【哪些人适合学习这门课程?】 求职中的开发者,对于面试算法阶段缺少经验 想了解实际工作中算法相关知识 在职程序员,算法基础薄弱,急需充电 【超人气讲师】 孙秀洋&nbsp;| 服务器端工程师 硕士毕业于哈工大计算机科学与技术专业,ACM亚洲区赛铜奖获得者,先后在腾讯和百度从事一线技术研发,对算法和后端技术有深刻见解。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27272 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程无限观看时长,但是大家可以抓紧时间学习后一起讨论哦~

软件测试入门、SQL、性能测试、测试管理工具

软件测试2小时入门,让您快速了解软件测试基本知识,有系统的了解; SQL一小时,让您快速理解和掌握SQL基本语法 jmeter性能测试 ,让您快速了解主流来源性能测试工具jmeter 测试管理工具-禅道,让您快速学会禅道的使用,学会测试项目、用例、缺陷的管理、

C++跨平台实战

C++实战课程,包含windows编程,linux编程,qt编程,基于ffmpeg的音视频编解码直播推流课程,基于opencv的视频处理课程和lua与c++联合编程课程。 如果已经购买了套餐中的某门课程,购买后加入课程群中,联系我退差价。

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

玩转Linux:常用命令实例指南

人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。 本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 --------------------------------------------------------------- 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+700元编程礼包。 &nbsp;

相关热词 c# 不能序列化继承类 c# char* 调用 c# 开发dll模板 c#添加控件到工具箱 c#控制台组合数 编程计算猴子吃桃问题c# c# wpf 背景透明 随机抽取号码软件c# c# 开发环境 c# 属性和字段
立即提问