You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
SoftwareEngineering/直播工具包/librtmp分析/LibRTMP源代码分析5:建立网络连接 - wong...

6588 lines
999 KiB

5 years ago
<!DOCTYPE html>
<html lang="zh-CN"><head><style>.login-box{position: fixed;display: none;left: 50%;top: 50%;z-index: 10000;-webkit-transform: translate(-50%, -50%);-ms-transform: translate(-50%, -50%);-o-transform: translate(-50%, -50%);-moz-transform: translate(-50%, -50%);transform: translate(-50%, -50%);background-color: #fff;}.login-mark{position: fixed;top: 0;left: 0;z-index: 9999;background-color: rgba(0, 0, 0, 0.5);width: 100%;height: 100%;display: none;}</style><script type="text/javascript" async="" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/auto_dup"></script><script type="text/javascript" charset="utf-8" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/apiaccept"></script>
<meta charset="UTF-8">
<link rel="canonical" href="https://blog.csdn.net/wongainia158158/article/details/48625871">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta name="renderer" content="webkit">
<meta name="force-rendering" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="referrer" content="always">
<meta http-equiv="Cache-Control" content="no-siteapp"><link rel="alternate" media="handheld" href="#">
<meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">
<meta name="csdn-baidu-search" content="{&quot;autorun&quot;:true,&quot;install&quot;:true,&quot;keyword&quot;:&quot;LibRTMP源代码分析5:建立网络连接 - wongainia158158的博客&quot;}">
<link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON">
<title>LibRTMP源代码分析5:建立网络连接 - wongainia158158的博客 - CSDN博客</title>
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/detail-a0a545005c.css">
<script type="text/javascript" async="" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/pr.js"></script><script type="text/javascript" async="" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/icgkglf.js"></script><script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/hm.js"></script><script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/hm.js"></script><script type="application/ld+json">{"@context":"https:\/\/ziyuan.baidu.com\/contexts\/cambrian.jsonld","@id":"https:\/\/blog.csdn.net\/wongainia158158\/article\/details\/48625871","appid":"1563894916825412","title":"LibRTMP\u6e90\u4ee3\u7801\u5206\u67905\uff1a\u5efa\u7acb\u7f51\u7edc\u8fde\u63a5 - wongainia158158\u7684\u535a\u5ba2","images":["http:\/\/img2.ph.126.net\/s4nswqgwFgNci7hkY-ekyw==\/873135377856589487.jpg"],"pubDate":"2019-03-05T14:38:18"}</script>
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/skin3-template-9b39979775.css">
<script type="text/javascript">
var username = "wongainia158158";
var blog_address = "https://blog.csdn.net/wongainia158158";
var static_host = "https://csdnimg.cn/release/phoenix/";
var currentUserName = "";
var isShowAds = true;
var isOwner = false;
var loginUrl = "http://passport.csdn.net/account/login?from=https://blog.csdn.net/wongainia158158/article/details/48625871"
var blogUrl = "https://blog.csdn.net/";
//页面皮肤样式
var curSkin = "skin3-template";
// 第四范式所需数据
var articleTitles = "LibRTMP源代码分析5:建立网络连接 - wongainia158158的博客";
var articleID = "48625871";
var nickName = "wongainia158158";
var isCorporate = false;
var subDomainBlogUrl = "https://blog.csdn.net/"
</script>
<script type="text/javascript">
// Traffic Stats of the entire Web site By baidu
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?6bcd52f51e9b3dce32bec4a3997715ac";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
// Traffic Stats of the entire Web site By baidu end
</script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/jquery-1.js" type="text/javascript"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/main-1.js"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/fixed-sidebar.js" type="text/javascript"></script>
<!-- 新版上报 -->
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/track.js" type="text/javascript"></script>
<!-- 新版上报end -->
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/sandalstrap.css">
<style>
.MathJax, .MathJax_Message, .MathJax_Preview{
display: none
}
</style>
<style type="text/css" id="QIHOO_FEED_CSS">newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}.QIHOO__WEB__SO__1551767900888_291 info-div{display:block}.QIHOO__WEB__SO__1551767900888_291
.singleImage{
background-color:#fff;
padding: 20px 0px 0px 20px;
overflow: hidden;
width: 880px;
height: 80px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .wrap{
position:relative;
width: 880px;
height: 80px;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-img{
width: 90px;
height: 68px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-img .img{
width: 90px;
height: 68px;
border-radius: 0px;
position: relative;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-body{
width: 790px;
height: 80px;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft YaHei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767900888_291
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551767900888_291 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767900888_291
.mulImage{.QIHOO__WEB__SO__1551767900888_291
padding: {paddingTop}.QIHOO__WEB__SO__1551767900888_291 px {paddingRight}.QIHOO__WEB__SO__1551767900888_291 px {paddingBottom}.QIHOO__WEB__SO__1551767900888_291 px {paddingLeft}px;.QIHOO__WEB__SO__1551767900888_291
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767900888_291
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767900888_291
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767900888_291
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767900888_291
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767900888_291
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767900888_291
color: {titleFontColor};.QIHOO__WEB__SO__1551767900888_291
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767900888_291 px {titlePaddingRight}.QIHOO__WEB__SO__1551767900888_291 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767900888_291 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767900888_291
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551767900888_291
color: {hoverColor};
}.QIHOO__WEB__SO__1551767900888_291
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767900888_291
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767900888_291
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767900888_291
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767900888_291
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767900888_291
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551767900888_291
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767900888_291
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767900888_291
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767900888_291
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767900888_291
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767900888_291 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow{.QIHOO__WEB__SO__1551767900888_291
padding: {paddingTop}.QIHOO__WEB__SO__1551767900888_291 px {paddingRight}.QIHOO__WEB__SO__1551767900888_291 px {paddingBottom}.QIHOO__WEB__SO__1551767900888_291 px {paddingLeft}px;.QIHOO__WEB__SO__1551767900888_291
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767900888_291
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767900888_291
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767900888_291
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767900888_291
color: {titleFontColor};.QIHOO__WEB__SO__1551767900888_291
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767900888_291 px {titlePaddingRight}.QIHOO__WEB__SO__1551767900888_291 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767900888_291 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551767900888_291
color: {hoverColor};
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767900888_291
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551767900888_291
height:{imgH}px;.QIHOO__WEB__SO__1551767900888_291
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551767900888_291
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767900888_291
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767900888_291 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767900888_291
.largeImage{.QIHOO__WEB__SO__1551767900888_291
padding: {paddingTop}.QIHOO__WEB__SO__1551767900888_291 px {paddingRight}.QIHOO__WEB__SO__1551767900888_291 px {paddingBottom}.QIHOO__WEB__SO__1551767900888_291 px {paddingLeft}px;.QIHOO__WEB__SO__1551767900888_291
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767900888_291
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767900888_291
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551767900888_291
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767900888_291
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767900888_291
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767900888_291
color: {titleFontColor};.QIHOO__WEB__SO__1551767900888_291
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767900888_291 px {titlePaddingRight}.QIHOO__WEB__SO__1551767900888_291 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767900888_291 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767900888_291
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551767900888_291
color:{hoverColor};
}.QIHOO__WEB__SO__1551767900888_291
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551767900888_291
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767900888_291
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551767900888_291
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767900888_291
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551767900888_291
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767900888_291
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767900888_291
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767900888_291
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}.QIHOO__WEB__SO__1551767900964_209 info-div{display:block}.QIHOO__WEB__SO__1551767900964_209
.singleImage{
background-color:#fff;
padding: 10px 0px 0px 0px;
overflow: hidden;
width: 900px;
height: 74px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .wrap{
position:relative;
width: 900px;
height: 74px;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-body{
width: 810px;
height: 74px;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767900964_209
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551767900964_209 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767900964_209
.mulImage{.QIHOO__WEB__SO__1551767900964_209
padding: {paddingTop}.QIHOO__WEB__SO__1551767900964_209 px {paddingRight}.QIHOO__WEB__SO__1551767900964_209 px {paddingBottom}.QIHOO__WEB__SO__1551767900964_209 px {paddingLeft}px;.QIHOO__WEB__SO__1551767900964_209
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767900964_209
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767900964_209
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767900964_209
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767900964_209
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767900964_209
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767900964_209
color: {titleFontColor};.QIHOO__WEB__SO__1551767900964_209
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767900964_209 px {titlePaddingRight}.QIHOO__WEB__SO__1551767900964_209 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767900964_209 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767900964_209
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551767900964_209
color: {hoverColor};
}.QIHOO__WEB__SO__1551767900964_209
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767900964_209
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767900964_209
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767900964_209
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767900964_209
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767900964_209
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551767900964_209
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767900964_209
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767900964_209
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767900964_209
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767900964_209
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767900964_209 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow{.QIHOO__WEB__SO__1551767900964_209
padding: {paddingTop}.QIHOO__WEB__SO__1551767900964_209 px {paddingRight}.QIHOO__WEB__SO__1551767900964_209 px {paddingBottom}.QIHOO__WEB__SO__1551767900964_209 px {paddingLeft}px;.QIHOO__WEB__SO__1551767900964_209
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767900964_209
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767900964_209
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767900964_209
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767900964_209
color: {titleFontColor};.QIHOO__WEB__SO__1551767900964_209
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767900964_209 px {titlePaddingRight}.QIHOO__WEB__SO__1551767900964_209 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767900964_209 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551767900964_209
color: {hoverColor};
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767900964_209
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551767900964_209
height:{imgH}px;.QIHOO__WEB__SO__1551767900964_209
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551767900964_209
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767900964_209
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767900964_209 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767900964_209
.largeImage{.QIHOO__WEB__SO__1551767900964_209
padding: {paddingTop}.QIHOO__WEB__SO__1551767900964_209 px {paddingRight}.QIHOO__WEB__SO__1551767900964_209 px {paddingBottom}.QIHOO__WEB__SO__1551767900964_209 px {paddingLeft}px;.QIHOO__WEB__SO__1551767900964_209
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767900964_209
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767900964_209
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551767900964_209
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767900964_209
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767900964_209
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767900964_209
color: {titleFontColor};.QIHOO__WEB__SO__1551767900964_209
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767900964_209 px {titlePaddingRight}.QIHOO__WEB__SO__1551767900964_209 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767900964_209 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767900964_209
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551767900964_209
color:{hoverColor};
}.QIHOO__WEB__SO__1551767900964_209
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551767900964_209
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767900964_209
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551767900964_209
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767900964_209
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551767900964_209
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767900964_209
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767900964_209
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767900964_209
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}.QIHOO__WEB__SO__1551767901457_17 info-div{display:block}.QIHOO__WEB__SO__1551767901457_17
.singleImage{
background-color:#fff;
padding: 0px 0px 0px 0px;
overflow: hidden;
width: 852px;
height: 60px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .wrap{
position:relative;
width: 852px;
height: 60px;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-body{
width: 762px;
height: 60px;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901457_17
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551767901457_17 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767901457_17
.mulImage{.QIHOO__WEB__SO__1551767901457_17
padding: {paddingTop}.QIHOO__WEB__SO__1551767901457_17 px {paddingRight}.QIHOO__WEB__SO__1551767901457_17 px {paddingBottom}.QIHOO__WEB__SO__1551767901457_17 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901457_17
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901457_17
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901457_17
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767901457_17
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901457_17
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901457_17
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901457_17
color: {titleFontColor};.QIHOO__WEB__SO__1551767901457_17
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901457_17 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901457_17 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901457_17 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901457_17
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551767901457_17
color: {hoverColor};
}.QIHOO__WEB__SO__1551767901457_17
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767901457_17
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767901457_17
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767901457_17
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767901457_17
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767901457_17
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551767901457_17
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767901457_17
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767901457_17
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901457_17
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901457_17
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901457_17 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow{.QIHOO__WEB__SO__1551767901457_17
padding: {paddingTop}.QIHOO__WEB__SO__1551767901457_17 px {paddingRight}.QIHOO__WEB__SO__1551767901457_17 px {paddingBottom}.QIHOO__WEB__SO__1551767901457_17 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901457_17
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767901457_17
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901457_17
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901457_17
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901457_17
color: {titleFontColor};.QIHOO__WEB__SO__1551767901457_17
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901457_17 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901457_17 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901457_17 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551767901457_17
color: {hoverColor};
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767901457_17
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551767901457_17
height:{imgH}px;.QIHOO__WEB__SO__1551767901457_17
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551767901457_17
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901457_17
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901457_17 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767901457_17
.largeImage{.QIHOO__WEB__SO__1551767901457_17
padding: {paddingTop}.QIHOO__WEB__SO__1551767901457_17 px {paddingRight}.QIHOO__WEB__SO__1551767901457_17 px {paddingBottom}.QIHOO__WEB__SO__1551767901457_17 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901457_17
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901457_17
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901457_17
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551767901457_17
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901457_17
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901457_17
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901457_17
color: {titleFontColor};.QIHOO__WEB__SO__1551767901457_17
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901457_17 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901457_17 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901457_17 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901457_17
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551767901457_17
color:{hoverColor};
}.QIHOO__WEB__SO__1551767901457_17
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551767901457_17
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767901457_17
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551767901457_17
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767901457_17
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551767901457_17
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901457_17
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901457_17
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901457_17
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}.QIHOO__WEB__SO__1551767901504_885 info-div{display:block}.QIHOO__WEB__SO__1551767901504_885
.singleImage{
background-color:#fff;
padding: 0px 0px 0px 0px;
overflow: hidden;
width: 852px;
height: 60px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .wrap{
position:relative;
width: 852px;
height: 60px;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-body{
width: 762px;
height: 60px;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901504_885
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551767901504_885 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767901504_885
.mulImage{.QIHOO__WEB__SO__1551767901504_885
padding: {paddingTop}.QIHOO__WEB__SO__1551767901504_885 px {paddingRight}.QIHOO__WEB__SO__1551767901504_885 px {paddingBottom}.QIHOO__WEB__SO__1551767901504_885 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901504_885
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901504_885
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901504_885
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767901504_885
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901504_885
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901504_885
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901504_885
color: {titleFontColor};.QIHOO__WEB__SO__1551767901504_885
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901504_885 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901504_885 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901504_885 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901504_885
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551767901504_885
color: {hoverColor};
}.QIHOO__WEB__SO__1551767901504_885
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767901504_885
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767901504_885
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767901504_885
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767901504_885
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767901504_885
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551767901504_885
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767901504_885
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767901504_885
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901504_885
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901504_885
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901504_885 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow{.QIHOO__WEB__SO__1551767901504_885
padding: {paddingTop}.QIHOO__WEB__SO__1551767901504_885 px {paddingRight}.QIHOO__WEB__SO__1551767901504_885 px {paddingBottom}.QIHOO__WEB__SO__1551767901504_885 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901504_885
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767901504_885
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901504_885
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901504_885
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901504_885
color: {titleFontColor};.QIHOO__WEB__SO__1551767901504_885
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901504_885 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901504_885 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901504_885 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551767901504_885
color: {hoverColor};
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767901504_885
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551767901504_885
height:{imgH}px;.QIHOO__WEB__SO__1551767901504_885
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551767901504_885
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901504_885
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901504_885 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767901504_885
.largeImage{.QIHOO__WEB__SO__1551767901504_885
padding: {paddingTop}.QIHOO__WEB__SO__1551767901504_885 px {paddingRight}.QIHOO__WEB__SO__1551767901504_885 px {paddingBottom}.QIHOO__WEB__SO__1551767901504_885 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901504_885
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901504_885
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901504_885
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551767901504_885
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901504_885
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901504_885
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901504_885
color: {titleFontColor};.QIHOO__WEB__SO__1551767901504_885
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901504_885 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901504_885 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901504_885 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901504_885
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551767901504_885
color:{hoverColor};
}.QIHOO__WEB__SO__1551767901504_885
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551767901504_885
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767901504_885
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551767901504_885
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767901504_885
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551767901504_885
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901504_885
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901504_885
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901504_885
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}.QIHOO__WEB__SO__1551767901638_433 info-div{display:block}.QIHOO__WEB__SO__1551767901638_433
.singleImage{
background-color:#fff;
padding: 0px 0px 0px 0px;
overflow: hidden;
width: 852px;
height: 60px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .wrap{
position:relative;
width: 852px;
height: 60px;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-body{
width: 762px;
height: 60px;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901638_433
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551767901638_433 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767901638_433
.mulImage{.QIHOO__WEB__SO__1551767901638_433
padding: {paddingTop}.QIHOO__WEB__SO__1551767901638_433 px {paddingRight}.QIHOO__WEB__SO__1551767901638_433 px {paddingBottom}.QIHOO__WEB__SO__1551767901638_433 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901638_433
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901638_433
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901638_433
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767901638_433
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901638_433
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901638_433
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901638_433
color: {titleFontColor};.QIHOO__WEB__SO__1551767901638_433
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901638_433 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901638_433 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901638_433 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901638_433
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551767901638_433
color: {hoverColor};
}.QIHOO__WEB__SO__1551767901638_433
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767901638_433
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767901638_433
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767901638_433
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767901638_433
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767901638_433
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551767901638_433
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767901638_433
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767901638_433
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901638_433
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901638_433
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901638_433 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow{.QIHOO__WEB__SO__1551767901638_433
padding: {paddingTop}.QIHOO__WEB__SO__1551767901638_433 px {paddingRight}.QIHOO__WEB__SO__1551767901638_433 px {paddingBottom}.QIHOO__WEB__SO__1551767901638_433 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901638_433
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767901638_433
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901638_433
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901638_433
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901638_433
color: {titleFontColor};.QIHOO__WEB__SO__1551767901638_433
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901638_433 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901638_433 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901638_433 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551767901638_433
color: {hoverColor};
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767901638_433
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551767901638_433
height:{imgH}px;.QIHOO__WEB__SO__1551767901638_433
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551767901638_433
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901638_433
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901638_433 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767901638_433
.largeImage{.QIHOO__WEB__SO__1551767901638_433
padding: {paddingTop}.QIHOO__WEB__SO__1551767901638_433 px {paddingRight}.QIHOO__WEB__SO__1551767901638_433 px {paddingBottom}.QIHOO__WEB__SO__1551767901638_433 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901638_433
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901638_433
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901638_433
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551767901638_433
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901638_433
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901638_433
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901638_433
color: {titleFontColor};.QIHOO__WEB__SO__1551767901638_433
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901638_433 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901638_433 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901638_433 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901638_433
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551767901638_433
color:{hoverColor};
}.QIHOO__WEB__SO__1551767901638_433
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551767901638_433
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767901638_433
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551767901638_433
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767901638_433
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551767901638_433
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901638_433
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901638_433
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901638_433
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}newsfeed{display:block;}newsfeed .img{background-size:cover;background-repeat:no-repeat;}.QIHOO__WEB__SO__1551767901712_141 info-div{display:block}.QIHOO__WEB__SO__1551767901712_141
.singleImage{
background-color:#fff;
padding: 0px 0px 0px 0px;
overflow: hidden;
width: 852px;
height: 60px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .wrap{
position:relative;
width: 852px;
height: 60px;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-body{
width: 762px;
height: 60px;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901712_141
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551767901712_141 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767901712_141
.mulImage{.QIHOO__WEB__SO__1551767901712_141
padding: {paddingTop}.QIHOO__WEB__SO__1551767901712_141 px {paddingRight}.QIHOO__WEB__SO__1551767901712_141 px {paddingBottom}.QIHOO__WEB__SO__1551767901712_141 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901712_141
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901712_141
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901712_141
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767901712_141
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901712_141
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901712_141
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901712_141
color: {titleFontColor};.QIHOO__WEB__SO__1551767901712_141
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901712_141 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901712_141 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901712_141 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901712_141
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551767901712_141
color: {hoverColor};
}.QIHOO__WEB__SO__1551767901712_141
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767901712_141
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767901712_141
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767901712_141
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767901712_141
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767901712_141
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551767901712_141
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767901712_141
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767901712_141
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901712_141
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901712_141
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901712_141 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow{.QIHOO__WEB__SO__1551767901712_141
padding: {paddingTop}.QIHOO__WEB__SO__1551767901712_141 px {paddingRight}.QIHOO__WEB__SO__1551767901712_141 px {paddingBottom}.QIHOO__WEB__SO__1551767901712_141 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901712_141
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767901712_141
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901712_141
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901712_141
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901712_141
color: {titleFontColor};.QIHOO__WEB__SO__1551767901712_141
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901712_141 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901712_141 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901712_141 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551767901712_141
color: {hoverColor};
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767901712_141
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551767901712_141
height:{imgH}px;.QIHOO__WEB__SO__1551767901712_141
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551767901712_141
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901712_141
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901712_141 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767901712_141
.largeImage{.QIHOO__WEB__SO__1551767901712_141
padding: {paddingTop}.QIHOO__WEB__SO__1551767901712_141 px {paddingRight}.QIHOO__WEB__SO__1551767901712_141 px {paddingBottom}.QIHOO__WEB__SO__1551767901712_141 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901712_141
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901712_141
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901712_141
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551767901712_141
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901712_141
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901712_141
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901712_141
color: {titleFontColor};.QIHOO__WEB__SO__1551767901712_141
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901712_141 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901712_141 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901712_141 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901712_141
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551767901712_141
color:{hoverColor};
}.QIHOO__WEB__SO__1551767901712_141
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551767901712_141
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767901712_141
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551767901712_141
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767901712_141
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551767901712_141
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901712_141
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901712_141
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901712_141
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551767901724_252 info-div{display:block}.QIHOO__WEB__SO__1551767901724_252
.singleImage{
background-color:#fff;
padding: 0px 0px 0px 0px;
overflow: hidden;
width: 852px;
height: 60px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .wrap{
position:relative;
width: 852px;
height: 60px;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-body{
width: 762px;
height: 60px;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-title{
font-size: 18px;
font-family: Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901724_252
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551767901724_252 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767901724_252
.mulImage{.QIHOO__WEB__SO__1551767901724_252
padding: {paddingTop}.QIHOO__WEB__SO__1551767901724_252 px {paddingRight}.QIHOO__WEB__SO__1551767901724_252 px {paddingBottom}.QIHOO__WEB__SO__1551767901724_252 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901724_252
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901724_252
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901724_252
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767901724_252
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901724_252
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901724_252
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901724_252
color: {titleFontColor};.QIHOO__WEB__SO__1551767901724_252
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901724_252 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901724_252 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901724_252 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901724_252
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551767901724_252
color: {hoverColor};
}.QIHOO__WEB__SO__1551767901724_252
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767901724_252
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767901724_252
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767901724_252
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767901724_252
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767901724_252
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551767901724_252
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767901724_252
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767901724_252
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901724_252
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901724_252
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901724_252 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow{.QIHOO__WEB__SO__1551767901724_252
padding: {paddingTop}.QIHOO__WEB__SO__1551767901724_252 px {paddingRight}.QIHOO__WEB__SO__1551767901724_252 px {paddingBottom}.QIHOO__WEB__SO__1551767901724_252 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901724_252
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767901724_252
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901724_252
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901724_252
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901724_252
color: {titleFontColor};.QIHOO__WEB__SO__1551767901724_252
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901724_252 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901724_252 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901724_252 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551767901724_252
color: {hoverColor};
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767901724_252
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551767901724_252
height:{imgH}px;.QIHOO__WEB__SO__1551767901724_252
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551767901724_252
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901724_252
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901724_252 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767901724_252
.largeImage{.QIHOO__WEB__SO__1551767901724_252
padding: {paddingTop}.QIHOO__WEB__SO__1551767901724_252 px {paddingRight}.QIHOO__WEB__SO__1551767901724_252 px {paddingBottom}.QIHOO__WEB__SO__1551767901724_252 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901724_252
background-color:{backgroundColor};
width: 852px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901724_252
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 852px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901724_252
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551767901724_252
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901724_252
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901724_252
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901724_252
color: {titleFontColor};.QIHOO__WEB__SO__1551767901724_252
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901724_252 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901724_252 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901724_252 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901724_252
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551767901724_252
color:{hoverColor};
}.QIHOO__WEB__SO__1551767901724_252
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551767901724_252
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767901724_252
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551767901724_252
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767901724_252
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551767901724_252
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901724_252
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901724_252
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901724_252
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551767901740_470 info-div{display:block}.QIHOO__WEB__SO__1551767901740_470
.singleImage{
background-color:#fff;
padding: 10px 0px 0px 0px;
overflow: hidden;
width: 900px;
height: 74px;
cursor: pointer;
position:relative;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .wrap{
position:relative;
width: 900px;
height: 74px;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .visited .singleImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-img{
width: 90px;
height: 60px;
padding: 0px 0px;
display: block;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-img-left{
float:left;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-img-right{
float:right;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-img-top{
position: absolute;
top : 0;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-img-bottom{
position: absolute;
bottom : 0;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-img .img{
width: 90px;
height: 60px;
border-radius: 3px;
position: relative;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-body{
width: 810px;
height: 74px;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-body-left{
float: left;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-body-right{
float: left;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-body-top{
position:absolute;
bottom:0;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-body-bottom{
position:absolute;
top:0;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-title{
font-size: 16px;
font-family: Microsoft Yahei;
font-weight: bold;
color: #000;
padding: 0px 0px 5px 16px;
display: block;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-title:hover{
color: #000;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .singleImage-desc{
font-size: 14px;
font-family: Microsoft Yahei;
color: #8e959a;
display: block;
padding: 0px 0px 0px 16px;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901740_470
.singleImage .ads-tag{
position: absolute;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}.QIHOO__WEB__SO__1551767901740_470 .mulImage .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767901740_470
.mulImage{.QIHOO__WEB__SO__1551767901740_470
padding: {paddingTop}.QIHOO__WEB__SO__1551767901740_470 px {paddingRight}.QIHOO__WEB__SO__1551767901740_470 px {paddingBottom}.QIHOO__WEB__SO__1551767901740_470 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901740_470
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901740_470
.mulImage .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901740_470
.mulImage .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767901740_470
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901740_470
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901740_470
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901740_470
color: {titleFontColor};.QIHOO__WEB__SO__1551767901740_470
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901740_470 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901740_470 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901740_470 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901740_470
.mulImage .mulimg-title:hover {.QIHOO__WEB__SO__1551767901740_470
color: {hoverColor};
}.QIHOO__WEB__SO__1551767901740_470
.mulImage .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767901740_470
.mulImage .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767901740_470
.mulImage .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767901740_470
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767901740_470
.mulImage .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767901740_470
.mulImage .mulimg-figure-img .img{.QIHOO__WEB__SO__1551767901740_470
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767901740_470
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767901740_470
.mulImage .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901740_470
.mulImage .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901740_470
.mulImage .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901740_470 .mulImageWindow .visited .mulimg-title{
color:#9e9e9e;
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow{.QIHOO__WEB__SO__1551767901740_470
padding: {paddingTop}.QIHOO__WEB__SO__1551767901740_470 px {paddingRight}.QIHOO__WEB__SO__1551767901740_470 px {paddingBottom}.QIHOO__WEB__SO__1551767901740_470 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901740_470
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow .mulimg-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow .mulimg-title {
overflow: hidden;.QIHOO__WEB__SO__1551767901740_470
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901740_470
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901740_470
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901740_470
color: {titleFontColor};.QIHOO__WEB__SO__1551767901740_470
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901740_470 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901740_470 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901740_470 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow .mulimg-title:hover {.QIHOO__WEB__SO__1551767901740_470
color: {hoverColor};
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow .mulimg-grid-wrap{
position: relative;
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow .mulimg-figure-grid{
overflow: hidden;
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow .mulimg-figure{
float: left;.QIHOO__WEB__SO__1551767901740_470
margin-right:{imageSplitWidth}px;
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow .mulimg-figure-img {
overflow: hidden;
position: relative;
padding: 0px NaNpx;
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow .mulimg-figure-img .img{
width:NaNpx;.QIHOO__WEB__SO__1551767901740_470
height:{imgH}px;.QIHOO__WEB__SO__1551767901740_470
border-radius:{imageBorderRadius}px;
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow .mulimg-figure-img .window-item__title{
display: block;
width: 100%;
position: absolute;
bottom: 0;
background-color: rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#88000000, endcolorstr=#88000000);
color: #fff;.QIHOO__WEB__SO__1551767901740_470
font-size: {windowItemTitleFontSize}px;
line-height: 1.5;
text-align: center;
white-space: nowrap;
overflow:hidden;
text-overflow: ellipsis;
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow .mulimg-extra{
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow .mulimg-extra .mul-ads-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901740_470
.mulImageWindow .mulimg-extra .ads-tag{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901740_470 .largeImage .visited .largeImage-title{
color: #9e9e9e;
}.QIHOO__WEB__SO__1551767901740_470
.largeImage{.QIHOO__WEB__SO__1551767901740_470
padding: {paddingTop}.QIHOO__WEB__SO__1551767901740_470 px {paddingRight}.QIHOO__WEB__SO__1551767901740_470 px {paddingBottom}.QIHOO__WEB__SO__1551767901740_470 px {paddingLeft}px;.QIHOO__WEB__SO__1551767901740_470
background-color:{backgroundColor};
width: 900px;
height: NaNpx;
overflow: hidden;
cursor: pointer;
}.QIHOO__WEB__SO__1551767901740_470
.largeImage .largeImage-wrapper {
position: relative;
vertical-align: top;
width: 900px;
height: NaNpx;
}.QIHOO__WEB__SO__1551767901740_470
.largeImage .largeImage-title {
display: none;
overflow: hidden;.QIHOO__WEB__SO__1551767901740_470
font-size: {titleFontSize}px;.QIHOO__WEB__SO__1551767901740_470
font-family: {titleFontFamily};.QIHOO__WEB__SO__1551767901740_470
font-weight: {titleFontWeight};.QIHOO__WEB__SO__1551767901740_470
color: {titleFontColor};.QIHOO__WEB__SO__1551767901740_470
padding: {titlePaddingTop}.QIHOO__WEB__SO__1551767901740_470 px {titlePaddingRight}.QIHOO__WEB__SO__1551767901740_470 px {titlePaddingBottom}.QIHOO__WEB__SO__1551767901740_470 px {titlePaddingLeft}px;
line-height: 1.3;
white-space: nowrap;
text-overflow: ellipsis;
letter-spacing:0.05em;
}.QIHOO__WEB__SO__1551767901740_470
.largeImage .largeImage-title:hover {.QIHOO__WEB__SO__1551767901740_470
color:{hoverColor};
}.QIHOO__WEB__SO__1551767901740_470
.largeImage .largeImage-body{
position: relative;
vertical-align: top;
}.QIHOO__WEB__SO__1551767901740_470
.largeImage .largeImage-grid-wrap {
position: relative;
padding: NaNpx 0px;
}.QIHOO__WEB__SO__1551767901740_470
.largeImage .largeImage-grid-wrap .img {.QIHOO__WEB__SO__1551767901740_470
width:{imgW}px;
height:NaNpx;.QIHOO__WEB__SO__1551767901740_470
border-radius:{imageBorderRadius}px;
position: relative;
}.QIHOO__WEB__SO__1551767901740_470
.largeImage .largeImage-extra {
display: none;
color: #999;
height: NaNpx;
line-height: NaNpx;
overflow: hidden;
white-space: nowrap;
}.QIHOO__WEB__SO__1551767901740_470
.largeImage .largeImage-extra .largeImage-ad-tag{
width: 30px;
color: #ddd;
font-size: 12px;
display: inline;
}.QIHOO__WEB__SO__1551767901740_470
.largeImage .largeImage-extra .largeImage-ad-src{
font-size: 12px;
color: #999;
display: inline;
}.QIHOO__WEB__SO__1551767901740_470
.largeImage .ads-tag{
position: absolute;
display : block;
top: 0;
right: 0;
width: 22px;
height: 12px;
background-image: url(//p0.ssl.qhimg.com/t01c5fc7f8612d6b610.png);
}</style><script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/share.js"></script><link rel="stylesheet" type="text/css" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/goTop.css"><style type="text/css">pre{position: relative}pre:hover .hljs-button{display: block}.hljs-button{display: none;position: absolute;right: 4px;top: 4px;font-size: 12px;color: #4d4d4d;background-color: white;padding: 2px 8px;margin: 8px;border-radius: 4px;cursor: pointer; box-shadow: 0 2px 4px rgba(0,0,0,0.05), 0 2px 4px rgba(0,0,0,0.05);}.hljs-button:after{content: attr(data-title)}</style><style type="text/css">.hljs-ln{border-collapse:collapse} .hljs-ln td{padding:0} .hljs-ln-n{text-align: right;padding-right: 8px;} .hljs-ln-n:before{content:attr(data-line-number)}</style><script charset="UTF-8" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/bwordcom"></script><script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/check-adb.js"></script><script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/baidu_opensug-1.js"></script><link rel="stylesheet" type="text/css" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/check-adb.css"><script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/fuckadblock.js"></script><style type="text/css">.MathJax_Hover_Frame {border-radius: .25em; -webkit-border-radius: .25em; -moz-border-radius: .25em; -khtml-border-radius: .25em; box-shadow: 0px 0px 15px #83A; -webkit-box-shadow: 0px 0px 15px #83A; -moz-box-shadow: 0px 0px 15px #83A; -khtml-box-shadow: 0px 0px 15px #83A; border: 1px solid #A6D ! important; display: inline-block; position: absolute}
.MathJax_Menu_Button .MathJax_Hover_Arrow {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 4px; -webkit-border-radius: 4px; -moz-border-radius: 4px; -khtml-border-radius: 4px; font-family: 'Courier New',Courier; font-size: 9px; color: #F0F0F0}
.MathJax_Menu_Button .MathJax_Hover_Arrow span {display: block; background-color: #AAA; border: 1px solid; border-radius: 3px; line-height: 0; padding: 4px}
.MathJax_Hover_Arrow:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_Hover_Arrow:hover span {background-color: #CCC!important}
</style><style type="text/css">#MathJax_About {position: fixed; left: 50%; width: auto; text-align: center; border: 3px outset; padding: 1em 2em; background-color: #DDDDDD; color: black; cursor: default; font-family: message-box; font-size: 120%; font-style: normal; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; border-radius: 15px; -webkit-border-radius: 15px; -moz-border-radius: 15px; -khtml-border-radius: 15px; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_About.MathJax_MousePost {outline: none}
.MathJax_Menu {position: absolute; background-color: white; color: black; width: auto; padding: 2px; border: 1px solid #CCCCCC; margin: 0; cursor: default; font: menu; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_MenuItem {padding: 2px 2em; background: transparent}
.MathJax_MenuArrow {position: absolute; right: .5em; padding-top: .25em; color: #666666; font-size: .75em}
.MathJax_MenuActive .MathJax_MenuArrow {color: white}
.MathJax_MenuArrow.RTL {left: .5em; right: auto}
.MathJax_MenuCheck {position: absolute; left: .7em}
.MathJax_MenuCheck.RTL {right: .7em; left: auto}
.MathJax_MenuRadioCheck {position: absolute; left: 1em}
.MathJax_MenuRadioCheck.RTL {right: 1em; left: auto}
.MathJax_MenuLabel {padding: 2px 2em 4px 1.33em; font-style: italic}
.MathJax_MenuRule {border-top: 1px solid #CCCCCC; margin: 4px 1px 0px}
.MathJax_MenuDisabled {color: GrayText}
.MathJax_MenuActive {background-color: Highlight; color: HighlightText}
.MathJax_MenuDisabled:focus, .MathJax_MenuLabel:focus {background-color: #E8E8E8}
.MathJax_ContextMenu:focus {outline: none}
.MathJax_ContextMenu .MathJax_MenuItem:focus {outline: none}
#MathJax_AboutClose {top: .2em; right: .2em}
.MathJax_Menu .MathJax_MenuClose {top: -10px; left: -10px}
.MathJax_MenuClose {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; font-family: 'Courier New',Courier; font-size: 24px; color: #F0F0F0}
.MathJax_MenuClose span {display: block; background-color: #AAA; border: 1.5px solid; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; line-height: 0; padding: 8px 0 6px}
.MathJax_MenuClose:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_MenuClose:hover span {background-color: #CCC!important}
.MathJax_MenuClose:hover:focus {outline: none}
</style><style type="text/css">.MathJax_Preview .MJXf-math {color: inherit!important}
</style><style type="text/css">.MJX_Assistive_MathML {position: absolute!important; top: 0; left: 0; clip: rect(1px, 1px, 1px, 1px); padding: 1px 0 0 0!important; border: 0!important; height: 1px!important; width: 1px!important; overflow: hidden!important; display: block!important; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none}
.MJX_Assistive_MathML.MJX_Assistive_MathML_Block {width: 100%!important}
</style><style type="text/css">#MathJax_Zoom {position: absolute; background-color: #F0F0F0; overflow: auto; display: block; z-index: 301; padding: .5em; border: 1px solid black; margin: 0; font-weight: normal; font-style: normal; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; box-shadow: 5px 5px 15px #AAAAAA; -webkit-box-shadow: 5px 5px 15px #AAAAAA; -moz-box-shadow: 5px 5px 15px #AAAAAA; -khtml-box-shadow: 5px 5px 15px #AAAAAA; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_ZoomOverlay {position: absolute; left: 0; top: 0; z-index: 300; display: inline-block; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
#MathJax_ZoomFrame {position: relative; display: inline-block; height: 0; width: 0}
#MathJax_ZoomEventTrap {position: absolute; left: 0; top: 0; z-index: 302; display: inline-block; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
</style><style type="text/css">.MathJax_Preview {color: #888}
#MathJax_Message {position: fixed; left: 1px; bottom: 2px; background-color: #E6E6E6; border: 1px solid #959595; margin: 0px; padding: 2px 8px; z-index: 102; color: black; font-size: 80%; width: auto; white-space: nowrap}
#MathJax_MSIE_Frame {position: absolute; top: 0; left: 0; width: 0px; z-index: 101; border: 0px; margin: 0px; padding: 0px}
.MathJax_Error {color: #CC0000; font-style: italic}
</style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><style type="text/css"></style><link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/share_style0_16.css"><style type="text/css">.MJXp-script {font-size: .8em}
.MJXp-right {-webkit-transform-origin: right; -moz-transform-origin: right; -ms-transform-origin: right; -o-transform-origin: right; transform-origin: right}
.MJXp-bold {font-weight: bold}
.MJXp-italic {font-style: italic}
.MJXp-scr {font-family: MathJax_Script,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-frak {font-family: MathJax_Fraktur,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-sf {font-family: MathJax_SansSerif,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-cal {font-family: MathJax_Caligraphic,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-mono {font-family: MathJax_Typewriter,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-largeop {font-size: 150%}
.MJXp-largeop.MJXp-int {vertical-align: -.2em}
.MJXp-math {display: inline-block; line-height: 1.2; text-indent: 0; font-family: 'Times New Roman',Times,STIXGeneral,serif; white-space: nowrap; border-collapse: collapse}
.MJXp-display {display: block; text-align: center; margin: 1em 0}
.MJXp-math span {display: inline-block}
.MJXp-box {display: block!important; text-align: center}
.MJXp-box:after {content: " "}
.MJXp-rule {display: block!important; margin-top: .1em}
.MJXp-char {display: block!important}
.MJXp-mo {margin: 0 .15em}
.MJXp-mfrac {margin: 0 .125em; vertical-align: .25em}
.MJXp-denom {display: inline-table!important; width: 100%}
.MJXp-denom > * {display: table-row!important}
.MJXp-surd {vertical-align: top}
.MJXp-surd > * {display: block!important}
.MJXp-script-box > * {display: table!important; height: 50%}
.MJXp-script-box > * > * {display: table-cell!important; vertical-align: top}
.MJXp-script-box > *:last-child > * {vertical-align: bottom}
.MJXp-script-box > * > * > * {display: block!important}
.MJXp-mphantom {visibility: hidden}
.MJXp-munderover {display: inline-table!important}
.MJXp-over {display: inline-block!important; text-align: center}
.MJXp-over > * {display: block!important}
.MJXp-munderover > * {display: table-row!important}
.MJXp-mtable {vertical-align: .25em; margin: 0 .125em}
.MJXp-mtable > * {display: inline-table!important; vertical-align: middle}
.MJXp-mtr {display: table-row!important}
.MJXp-mtd {display: table-cell!important; text-align: center; padding: .5em 0 0 .5em}
.MJXp-mtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-mlabeledtr {display: table-row!important}
.MJXp-mlabeledtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mlabeledtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-merror {background-color: #FFFF88; color: #CC0000; border: 1px solid #CC0000; padding: 1px 3px; font-style: normal; font-size: 90%}
.MJXp-scale0 {-webkit-transform: scaleX(.0); -moz-transform: scaleX(.0); -ms-transform: scaleX(.0); -o-transform: scaleX(.0); transform: scaleX(.0)}
.MJXp-scale1 {-webkit-transform: scaleX(.1); -moz-transform: scaleX(.1); -ms-transform: scaleX(.1); -o-transform: scaleX(.1); transform: scaleX(.1)}
.MJXp-scale2 {-webkit-transform: scaleX(.2); -moz-transform: scaleX(.2); -ms-transform: scaleX(.2); -o-transform: scaleX(.2); transform: scaleX(.2)}
.MJXp-scale3 {-webkit-transform: scaleX(.3); -moz-transform: scaleX(.3); -ms-transform: scaleX(.3); -o-transform: scaleX(.3); transform: scaleX(.3)}
.MJXp-scale4 {-webkit-transform: scaleX(.4); -moz-transform: scaleX(.4); -ms-transform: scaleX(.4); -o-transform: scaleX(.4); transform: scaleX(.4)}
.MJXp-scale5 {-webkit-transform: scaleX(.5); -moz-transform: scaleX(.5); -ms-transform: scaleX(.5); -o-transform: scaleX(.5); transform: scaleX(.5)}
.MJXp-scale6 {-webkit-transform: scaleX(.6); -moz-transform: scaleX(.6); -ms-transform: scaleX(.6); -o-transform: scaleX(.6); transform: scaleX(.6)}
.MJXp-scale7 {-webkit-transform: scaleX(.7); -moz-transform: scaleX(.7); -ms-transform: scaleX(.7); -o-transform: scaleX(.7); transform: scaleX(.7)}
.MJXp-scale8 {-webkit-transform: scaleX(.8); -moz-transform: scaleX(.8); -ms-transform: scaleX(.8); -o-transform: scaleX(.8); transform: scaleX(.8)}
.MJXp-scale9 {-webkit-transform: scaleX(.9); -moz-transform: scaleX(.9); -ms-transform: scaleX(.9); -o-transform: scaleX(.9); transform: scaleX(.9)}
.MathJax_PHTML .noError {vertical-align: ; font-size: 90%; text-align: left; color: black; padding: 1px 3px; border: 1px solid}
</style></head>
<!-- nodata 第三栏接口无数据时样式不变 -->
<body class="nodata "><div id="BAIDU_DUP_fp_wrapper" style="position: absolute; left: -1px; bottom: -1px; z-index: 0; width: 0px; height: 0px; overflow: hidden; visibility: hidden; display: none;"><iframe id="BAIDU_DUP_fp_iframe" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/o.htm" style="width: 0px; height: 0px; visibility: hidden; display: none;"></iframe></div><div id="MathJax_Message" style="display: none;"></div><svg aria-hidden="true" style="position: absolute; width: 0px; height: 0px; overflow: hidden;"><symbol id="csdnc-zhifubao" viewBox="0 0 1756 1024"><path d="M1002.928571 659.892857c-85.285714 102.392857-173.5 165-307.214286 165s-221.892857-82.5-210.5-182c5.714286-65.392857 51.214286-173.5 247.5-156.392857 102.392857 8.5 150.785714 28.392857 236.107143 56.892857 22.785714-39.785714 39.785714-85.285714 54-130.785714L647.321429 412.607143l0-37 184.892857 0L832.214286 310 607.5 310 607.5 267.285714l224.714286 0L832.214286 170.607143c0 0 2.785714-14.214286 19.892857-14.214286l93.892857 0 0 110.892857 238.892857 0 0 39.785714-241.785714 0L943.107143 372.5l196.285714 0c-17.107143 74-45.5 142.214286-79.607143 199.107143 48.392857 17.107143 244.607143 76.785714 301.5 93.892857L1361.285714 167.785714c0-79.607143-65.392857-142.214286-142.214286-142.214286L533.607143 25.571429c-79.714286 0-142.285714 65.392857-142.285714 142.214286l0 688.392857c0 79.607143 65.392857 142.214286 142.214286 142.214286l688.392857 0c79.607143 0 142.214286-65.392857 142.214286-142.214286l0-34.214286C1315.714286 799.285714 1099.607143 705.392857 1002.928571 659.892857zM525 634.285714c-8.5 37 14.214286 125.214286 156.392857 125.214286 85.285714 0 170.714286-54 238.892857-142.214286-96.714286-48.392857-176.392857-71.107143-267.392857-71.107143C573.321429 549 533.5 597.285714 525 634.285714z"></path></symbol><symbol id="csdnc-alevel-3" viewBox="0 0 3072 1024"><path d="M372.99884256 80.14660493h2375.19367285a107.96334877 107.96334877 0 0 1 107.96334876 107.96334877v647.7800926a107.96334877 107.96334877 0 0 1-107.96334876 107.96334877H372.99884256a107.96334877 107.96334877 0 0 1-107.96334877-107.96334877V188.1099537a107.96334877 107.96334877 0 0 1 107.96334877-107.96334877z" fill="#83B53A"></path><path d="M1938.46739967 134.12827933h809.72511574a53.98167438 53.98167438 0 0 1 53.98167437 53.98167437v647.7800926a53.98167438 53.98167438 0 0 1-53.98167437 53.98167437H1938.46739967V134.12827933z" fill="#2D5315"></path><path d="M2547.65059507 392.16068286v77.73361112c0 10.41846315-1.78139526 19.43340277-5.39816744 26.9908372 13.65736361 14.41310706 20.51303627 31.30937114 20.51303627 50.74277391v84.21141205c0 20.51303627-7.17956269 38.05708044-21.59266976 52.63213251s-31.84918789 21.86257812-52.36222415 21.86257812h-236.43973378c-20.51303627 0-38.05708044-7.28752604-52.63213254-21.86257812s-21.86257812-32.11909625-21.86257812-52.63213251v-23.21211998h70.71599345v23.21211998c0 2.5371387 1.24157852 3.7787172 3.77871721 3.7787172h236.43973378c2.15926698 0 3.23890047-1.24157852 3.23890047-3.7787172V547.62790509c0-2.5371387-1.07963349-3.7787172-3.23890047-3.7787172h-243.99716821V473.13319444h228.34248263c2.5371387 0 3.7787172-1.07963349 3.77871723-3.23890046V392.16068286c0-2.5371387-1.24157852-3.7787172-3.77871723-3.7787172h-220.7850482c-2.5371387 0-3.7787172 1.24157852-3.77871721 3.7787172v28.07047069h-70.71599345v-28.07047069c0-20.51303627 7.28752604-38.05708044 21.86257812-52.63213251s32.11909625-21.86257812 52.63213254-21.86257812h220.7850482c20.51303627 0 38.05708044 7.28752604 52.63213254 21.86257812s21.86257812 32.11909625 21.86257812 52.63213251zM563.44618978 790.49145814V378.98915433h70.06821335v411.50230381H563.44618978zM567.60277872 274.48063271l51.06666396-34.44030824c29.0961225 30.28371932 70.66201177 73.03720544 91.44495641 99.16433583l-54.62945449 38.59689718C637.07719365 351.67442708 596.6989012 306.5457473 567.60277872 274.48063271z m287.39843441 207.23564797H764.74385356v99.16433583h9
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/content_toolbar.css">
<script id="toolbar-tpl-scriptId" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/content_toolbar.js" type="text/javascript" domain="https://blog.csdn.net/"></script><script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/notify.js"></script><script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/main.js"></script><script class="toolbar-s" type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/iconfont.js"></script>
<div id="kp_box_476" data-pid="476" data-track-click="{&quot;mod&quot;:&quot;kp_popu_476-844&quot;,&quot;con&quot;:&quot;,,&quot;}"><script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/indexSuperise.js"></script>
<script>
window.csdn.indexSuperise({
smallMoveImg: '//img-ads.csdn.net/2019/201903041152101856.jpg',
bigMoveImg: '//img-ads.csdn.net/2019/201903041152319311.jpg',
link:'//h5.youzan.com/v2/showcase/goods?alias=1y922sfobvtfj',
boxStyle:140,
trackSuperId:476,
smallMove:'notMove',
trackSId:794
});
</script></div><link href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/indexSuperise.css" rel="stylesheet"><link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/blog_code-c3a0c33d5c.css">
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/paging.css">
<script type="text/javascript">
// 容错处理
var NEWS_FEED = function(){}
</script>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/copyright.js"></script>
<div style="display:none;">
<img src="" onerror='setTimeout(function(){if(!/(csdn.net|iteye.com|baiducontent.com|googleusercontent.com|360webcache.com|sogoucdn.com|bingj.com|baidu.com)$/.test(window.location.hostname)){window.location.href="\x68\x74\x74\x70\x73\x3a\x2f\x2f\x77\x77\x77\x2e\x63\x73\x64\x6e\x2e\x6e\x65\x74"}},3000);'>
</div>
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/chart-3456820cac.css">
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/ds.js"></script>
<div class="container clearfix" id="mainBox">
<div class="recommend-right">
<ul class="recommend-fixed-box">
</ul>
</div>
<main>
<div class="blog-content-box">
<div class="article-header-box">
<div class="article-header">
<div class="article-title-box">
<span class="article-type type-1 float-left"></span> <h1 class="title-article">LibRTMP源代码分析5:建立网络连接</h1>
</div>
<div class="article-info-box">
<div class="article-bar-top">
<span class="time">2015年09月21日 14:15:32</span>
<a class="follow-nickName" href="https://me.csdn.net/wongainia158158" target="_blank">wongainia158158</a>
<span class="read-count">阅读数:635</span>
</div>
<div class="operating">
</div>
</div>
</div>
</div>
<article class="baidu_pl">
<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post">
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/ck_htmledit_views-f57960eb32.css">
<div class="htmledit_views" id="content_views">
<span style="font-size:12px;line-height:22.75px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;"><span style="line-height:26px;color:rgb(51,51,51);font-family:Arial;">服务器和客户端之间只能建立一个网络连接,但是基于该连接可以创建很多网络流。他们的关系如图所示:</span></span>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span><span style="font-family:Arial;font-size:12px;color:#333333;line-height:22.75px;"><span style="line-height:26px;"><br style="line-height:22.75px;"></span></span><span style="font-size:12px;line-height:22.75px;"></span></span>
<div>
<div style="text-align:center;"><span style="font-size:12px;line-height:22.75px;"><img alt="LibRTMP源代码分析5:建立网络连接(NetConnection) - nkwavelet - 小波的世界" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3178133962140142827.gif" style="border:0px;width:500px;"></span></div>
<div style="text-align:center;"><span style="font-size:12px;line-height:22.75px;"><br></span></div>
<span style="font-size:12px;line-height:22.75px;">&nbsp;<span>
</span>网络连接的基本步骤在第一篇文章中有所介绍,此处不再重复。源代码中的 RTMP_Connect(...) 用于建立RTMP网络连接。</span></div>
</div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span style="font-size:12px;line-height:22.75px;"><br></span></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span style="font-size:12px;line-height:22.75px;"></span>
<div style="line-height:22px;"><span style="color:rgb(0,0,255);line-height:22.75px;">/**</span></div>
<div style="line-height:22px;"><span style="color:rgb(0,0,255);line-height:22.75px;">&nbsp;* @brief 建立RTMP中的网络连接(NetConnection).</span></div>
<div style="line-height:22px;"><span style="color:rgb(0,0,255);line-height:22.75px;">&nbsp;* &nbsp;a) 创建并设置目标socket,包括ip地址和端口号</span></div>
<div style="line-height:22px;"><span style="color:rgb(0,0,255);line-height:22.75px;">&nbsp;* &nbsp;b) 建立socket连接,设置socket的超时和接收、发送缓冲区的大小</span></div>
<div style="line-height:22px;"><span style="color:rgb(0,0,255);line-height:22.75px;">&nbsp;* &nbsp;c) 握手操作</span></div>
<div style="line-height:22px;"><span style="color:rgb(0,0,255);line-height:22.75px;">&nbsp;* &nbsp;d) 发送含有connect命令的数据报,用于建立RTMP连接</span></div>
<div style="line-height:22px;"><span style="color:rgb(0,0,255);line-height:22.75px;">&nbsp;*/</span></div>
<div style="line-height:22px;"><span>int RTMP_Connect(RTMP *r, RTMPPacket *cp, struct sockaddr *dst)</span></div>
<div style="line-height:22px;"><span>{</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">// socket结构体</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>struct sockaddr_in service;</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (!r-&gt;Link.hostname.av_len)</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>return FALSE;</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">// 设置socket地址</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>memset(&amp;service, 0, sizeof(struct sockaddr_in));</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>service.sin_family = AF_INET;</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (r-&gt;Link.socksport)</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>{</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">/* Connect via SOCKS,使用SOCKS连接 */</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (!add_addr_info(&amp;service, &amp;r-&gt;Link.sockshost, r-&gt;Link.socksport))</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>return FALSE;</span></div>
<div style="line-height:22px;"><span>&nbsp; &nbsp; &nbsp; &nbsp; }</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>else</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>{</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">/* Connect directly, 直接连接 */</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (!<span style="color:#ff0000;line-height:22.75px;">add_addr_info</span>(&amp;service, &amp;r-&gt;Link.hostname, r-&gt;Link.port))</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>return FALSE;</span></div>
<div style="line-height:22px;"><span>&nbsp; &nbsp; &nbsp; &nbsp;}</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (r-&gt;m_nstub == 1)</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>{</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">// 设置socket的ip地址和端口号</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#ff0000;line-height:22.75px;">rtmp_sockaddr_set_ip</span>((struct sockaddr*)&amp;service, inet_addr(r-&gt;m_stubip));</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>service.sin_port = htons(r-&gt;m_stubport);</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>}</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">// 第0次连接,主要用于建立socket连接,并未开始真正的建立RTMP连接</span></span></div>
<div><span><span style="color:#008000;line-height:22px;"><span style="line-height:22.75px;"></span>//&nbsp;</span><span style="color:#008000;">设置socket的超时和socket接收、发送缓冲区的大小</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (!<span style="color:#ff0000;line-height:22.75px;">RTMP_Connect0</span>(r, (struct sockaddr *)&amp;service))</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>return FALSE;</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (dst)&nbsp;</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>memcpy(dst, &amp;service, sizeof(struct sockaddr));</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>r-&gt;m_bSendCounter = TRUE;</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div><span><span style="line-height:22px;"></span><span style="color:#008000;line-height:22px;">// 第1次连接,真正建立RTMP连接,主要包括握手和发送</span><span style="color:#008000;">connect命令</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>return&nbsp;<span style="color:#ff0000;line-height:22.75px;">RTMP_Connect1</span>(r, cp);</span></div>
<div style="line-height:22px;"><span>}</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span>&nbsp;RTMP_Connect()函数主要调用了上述红色标记出来的四个函数来完成RTMP网络连接,接下来我们分别来分析这四个函数。</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div>
<div><span style="color:rgb(0,0,255);">/**</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;* @brief 将主机的ip地址和端口号添加到socket地址结构中</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;*</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;* @param service : socket的IPv4地址结构</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;* @param host &nbsp; &nbsp;: 结构体存有主机名及其长度</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;* @param port &nbsp; &nbsp; : 待添加的端口号</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;*</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;* @return 成功返回TRUE,否则返回FALSE.</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;*/</span></div>
<div><span>static int add_addr_info(struct sockaddr_in *service, AVal *host, int port)</span></div>
<div><span>{</span></div>
<div><span><span></span>char *hostname;</span></div>
<div><span><span></span>int &nbsp;ret = TRUE;</span></div>
<div><span><br></span></div>
<div><span><span></span><span style="color:#008000;">// 获取主机名</span></span></div>
<div><span><span></span>if (host-&gt;av_val[host-&gt;av_len])</span></div>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; {</span></div>
<div><span><span></span><span style="color:#008000;">// 主机名之后的值非零,为主机名重新申请空间,最后一位补上'\0'</span></span></div>
<div><span><span></span>hostname = malloc(host-&gt;av_len + 1);</span></div>
<div><span><span></span>memcpy(hostname, host-&gt;av_val, host-&gt;av_len);</span></div>
<div><span><span></span>hostname[host-&gt;av_len] = '\0';</span></div>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; }</span></div>
<div><span><span></span>else</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span><span style="color:#008000;">// 主机名之后的值为0,直接将主机名地址赋值即可</span></span></div>
<div><span><span></span>hostname = host-&gt;av_val;</span></div>
<div><span><span></span>}</span></div>
<div><span><br></span></div>
<div><span><span></span><span style="color:#008000;">// 将主机名转化为32位网络字节序IP地址</span></span></div>
<div><span><span></span>service-&gt;sin_addr.s_addr = inet_addr(hostname);</span></div>
<div><span><br></span></div>
<div><span><span></span><span style="color:#008000;">// 如果得到的地址值是非法的,则另谋其道</span></span></div>
<div><span><span></span>if (service-&gt;sin_addr.s_addr == INADDR_NONE)</span></div>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; {</span></div>
<div><span><span></span><span style="color:#008000;">// 根据主机名,获取与主机有关的信息,包括主机别名、地址类型以及该主机的所有IP地址</span></span></div>
<div><span><span></span>struct hostent *host = gethostbyname(hostname);</span></div>
<div><span><span></span>if (host == NULL || host-&gt;h_addr == NULL)</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span>RTMP_Log(RTMP_LOGERROR, "Problem accessing the DNS. (addr: %s)", hostname);</span></div>
<div><span><span></span>ret = FALSE;</span></div>
<div><span><span></span>goto finish;</span></div>
<div><span><span></span>}</span></div>
<div><span><br></span></div>
<div><span><span></span><span style="color:#008000;">// 设置IP地址</span></span></div>
<div><span><span></span>service-&gt;sin_addr = *(struct in_addr *)host-&gt;h_addr;</span></div>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; }</span></div>
<div><span><br></span></div>
<div><span><span></span><span style="color:#008000;">// 设置端口号</span></span></div>
<div><span><span></span>service-&gt;sin_port = htons(port);</span></div>
<div><span><br></span></div>
<div><span>finish:</span></div>
<div><span><span></span><span style="color:#008000;">// hostname重新申请了空间,则需要释放</span></span></div>
<div><span><span></span>if (hostname != host-&gt;av_val)</span></div>
<div><span><span></span>free(hostname);</span></div>
<div><span><br></span></div>
<div><span><span></span>return ret;</span></div>
<div><span>}</span></div>
</div>
</div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span><br></span></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<div><span style="font-size:12px;color:rgb(0,0,255);line-height:22.75px;">/**</span></div>
<div><span style="font-size:12px;color:rgb(0,0,255);line-height:22.75px;">&nbsp;* @brief 设置scoket的ip地址</span></div>
<div><span style="font-size:12px;color:rgb(0,0,255);line-height:22.75px;">&nbsp;*</span></div>
<div><span style="font-size:12px;color:rgb(0,0,255);line-height:22.75px;">&nbsp;* @param a &nbsp;: 待设置的scoket指针</span></div>
<div><span style="font-size:12px;color:rgb(0,0,255);line-height:22.75px;">&nbsp;* @param ip : 32位的网络字节序IP地址</span></div>
<div><span style="font-size:12px;color:rgb(0,0,255);line-height:22.75px;">&nbsp;*/</span></div>
<div><span style="font-size:12px;line-height:22.75px;">void rtmp_sockaddr_set_ip(struct sockaddr *a, unsigned long ip)</span></div>
<div><span style="font-size:12px;line-height:22.75px;">{</span></div>
<div><span style="font-size:12px;line-height:22.75px;"><span></span>union { struct sockaddr_in ain; struct sockaddr addr; } ts;</span></div>
<div><span style="font-size:12px;line-height:22.75px;"><span></span>ts.addr = a[0];</span></div>
<div><span style="font-size:12px;line-height:22.75px;"><span></span>ts.ain.sin_addr.s_addr = ip;</span></div>
<div><span style="font-size:12px;line-height:22.75px;"><span></span>a[0] = ts.addr;</span></div>
<div><span style="font-size:12px;line-height:22.75px;">}</span></div>
</div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span style="font-size:12px;line-height:22.75px;"><br></span></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span style="font-size:12px;line-height:22.75px;"></span>
<div style="line-height:22px;"><span style="color:rgb(0,0,255);line-height:22.75px;">/**</span></div>
<div style="line-height:22px;"><span style="color:rgb(0,0,255);line-height:22.75px;">&nbsp;* @brief 建立socket连接. r创建一个socket连接到service指定的网络地址。</span></div>
<div style="line-height:22px;"><span style="color:rgb(0,0,255);line-height:22.75px;">&nbsp;* &nbsp;设置socket接收数据的超时时限以及socket接收和发送缓冲区的大小。</span></div>
<div style="line-height:22px;"><span style="color:rgb(0,0,255);line-height:22.75px;">&nbsp;*/</span></div>
<div style="line-height:22px;"><span>int RTMP_Connect0(RTMP *r, struct sockaddr *service)</span></div>
<div style="line-height:22px;"><span>{</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>int recv_size = 128*1024;</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>int send_size = 128*1024;</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>int len = sizeof(int);</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>int on &nbsp;= 1;</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>r-&gt;m_sb.sb_timedout = FALSE;</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>r-&gt;m_pausing = 0;</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>r-&gt;m_fDuration = 0.0;</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">// 创建一个流式socket</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>r-&gt;m_sb.sb_socket = r-&gt;m_sock.socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (r-&gt;m_sb.sb_socket != -1)</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>{</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">// 将刚刚创建的socket连接至service指定的网络地址</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (r-&gt;m_sock.connect(r-&gt;m_sb.sb_socket, service, sizeof(struct sockaddr)) &lt; 0)</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>{</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>int err = r-&gt;m_sock.getsockerr();</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>RTMP_Log(RTMP_LOGERROR, "%s, failed to connect socket. %d (%s)", __FUNCTION__, err, strerror(err));</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>RTMP_Close(r);</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>return FALSE;</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>}</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">// 指定了端口号,这个不是必需的.</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (r-&gt;Link.socksport)</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>{</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>RTMP_Log(RTMP_LOGDEBUG, "%s ... SOCKS negotiation", __FUNCTION__);</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (!SocksNegotiate(r))</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>{</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>RTMP_Log(RTMP_LOGERROR, "%s, SOCKS negotiation failed.", __FUNCTION__);</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>RTMP_Close(r);</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>return FALSE;</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>}</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>}</span></div>
<div style="line-height:22px;"><span>&nbsp; &nbsp; &nbsp; &nbsp; }</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>else<span style="line-height:22.75px;">
</span><span style="color:#008000;line-height:22.75px;">// 创建socket失败</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>{</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>RTMP_Log(RTMP_LOGERROR, "%s, failed to create socket. Error: %d", __FUNCTION__, r-&gt;m_sock.getsockerr());</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>return FALSE;</span></div>
<div style="line-height:22px;"><span>&nbsp; &nbsp; &nbsp; &nbsp; }</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">/* set timeout,设置超时 */</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (r-&gt;m_sock.setsockopt)&nbsp;</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>{</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">// 获取设定的超时时限,单位毫秒</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>SET_RCVTIMEO(tv, r-&gt;Link.timeout);</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">// 设置socket接收数据的超时时限,单位毫秒</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>if (r-&gt;m_sock.setsockopt(r-&gt;m_sb.sb_socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&amp;tv, sizeof(tv)))</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>{</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>RTMP_Log(RTMP_LOGERROR, "%s, Setting socket timeout to %ds failed!", __FUNCTION__, r-&gt;Link.timeout);</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>}</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span><span style="color:#008000;line-height:22.75px;">// 设置socket接收和发送缓冲区的大小</span></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>r-&gt;m_sock.setsockopt(r-&gt;m_sb.sb_socket, SOL_SOCKET, SO_RCVBUF, (char*)&amp;recv_size, len);</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>r-&gt;m_sock.setsockopt(r-&gt;m_sb.sb_socket, SOL_SOCKET, SO_SNDBUF, (char*)&amp;send_size, len);</span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>}</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div style="line-height:22px;"><span><span style="line-height:22.75px;"></span>return TRUE;</span></div>
<div style="line-height:22px;"><span>}</span></div>
<div style="line-height:22px;"><span><br style="line-height:22.75px;"></span></div>
<div>
<div><span style="color:rgb(0,0,255);">/**</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;* @brief 建立RTMP连接,从握手开始.</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;*/</span></div>
<div><span>int RTMP_Connect1(RTMP *r, RTMPPacket *cp)</span></div>
<div><span>{</span></div>
<div><span><span></span>if (r-&gt;Link.protocol &amp; RTMP_FEATURE_SSL)</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span>RTMP_Log(RTMP_LOGERROR, "%s, no SSL/TLS support", __FUNCTION__);</span></div>
<div><span><span></span>RTMP_Close(r);</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><span></span>}</span></div>
<div><span><br></span></div>
<div><span><span></span><span style="color:#008000;">// 使用Http</span></span></div>
<div><span><span></span>if (r-&gt;Link.protocol &amp; RTMP_FEATURE_HTTP)</span></div>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; {</span></div>
<div><span><span></span>r-&gt;m_msgCounter = 1;</span></div>
<div><span><span></span>r-&gt;m_clientID.av_val = NULL;</span></div>
<div><span><span></span>r-&gt;m_clientID.av_len = 0;</span></div>
<div><span><span></span>HTTP_Post(r, RTMPT_OPEN, "", 1);</span></div>
<div><span><span></span>if (HTTP_read(r, 1) != 0)</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span>r-&gt;m_msgCounter = 0;</span></div>
<div><span><span></span>RTMP_Log(RTMP_LOGDEBUG, "%s, Could not connect for handshake", __FUNCTION__);</span></div>
<div><span><span></span>RTMP_Close(r);</span></div>
<div><span><span></span>return 0;</span></div>
<div><span><span></span>}</span></div>
<div><span><br></span></div>
<div><span><span></span>r-&gt;m_msgCounter = 0;</span></div>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; }</span></div>
<div><span><br></span></div>
<div><span><span></span>RTMP_Log(RTMP_LOGDEBUG, "%s, ... connected, handshaking", __FUNCTION__);</span></div>
<div><span><span></span>if (!<span style="color:#ff0000;">HandShake</span>(r, TRUE))<span>
</span><span style="color:#008000;">// 开始握手</span></span></div>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; {</span></div>
<div><span><span></span>RTMP_Log(RTMP_LOGERROR, "%s, handshake failed.", __FUNCTION__);</span></div>
<div><span><span></span>RTMP_Close(r);</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp;}</span></div>
<div><span><span></span>RTMP_Log(RTMP_LOGDEBUG, "%s, handshaked", __FUNCTION__);</span></div>
<div><span><br></span></div>
<div><span><span></span><span style="color:#008000;">// 发送含有connect命令的数据报,用于建立RTMP连接</span></span></div>
<div><span><span></span>if (!<span style="color:#ff0000;">SendConnectPacket</span>(r, cp))</span></div>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; {</span></div>
<div><span><span></span>RTMP_Log(RTMP_LOGERROR, "%s, RTMP connect failed.", __FUNCTION__);</span></div>
<div><span><span></span>RTMP_Close(r);</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><span></span>}</span></div>
<div><span><br></span></div>
<div><span><span></span>return TRUE;</span></div>
<div><span>}</span></div>
</div>
<div><span><br></span></div>
<div><span>第一次连接RTMP_Connect1( )函数主要做了两件事情:&nbsp;</span></div>
<div><span>&nbsp;1) HandShake()完成握手,之前已经分析过了;</span></div>
<div><span>&nbsp;2) SendConnectPacket()发送connect命令,用于建立RTMP连接。接下来就具体分析一下这个函数。</span></div>
<div><span><br></span></div>
<div>
<div><span style="color:rgb(0,0,255);">/**</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;* @brief 发送connect命令. 这是每次程序运行的时候发送的第一个命令消息.</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;* &nbsp;命令消息由命令名,传输ID,和命令对象组成.</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;* &nbsp;命令对象由一系列的相关参数组成.</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;* &nbsp;可参考rtmp协议:rtmp命令消息--4.1.1节</span></div>
<div><span style="color:rgb(0,0,255);">&nbsp;*/</span></div>
<div><span>static int SendConnectPacket(RTMP *r, RTMPPacket *cp)</span></div>
<div><span>{</span></div>
<div><span><span></span>RTMPPacket packet;</span></div>
<div><span><span></span>char pbuf[4096], *pend = pbuf + sizeof(pbuf);</span></div>
<div><span><span></span>char *enc;</span></div>
<div><span><br></span></div>
<div><span><span></span>if (cp)</span></div>
<div><span><span></span>return RTMP_SendPacket(r, cp, TRUE);</span></div>
<div><span><br></span></div>
<div><span><span></span>packet.m_nChannel = 0x03;<span>
</span><span style="color:#008000;">/* control channel (invoke), 块流ID */</span></span></div>
<div><span><span></span>packet.m_headerType = RTMP_PACKET_SIZE_LARGE;<span>
</span><span style="color:#008000;">// 块消息头类型,长度为11字节</span></span></div>
<div><span><span></span>packet.m_packetType = RTMP_PACKET_TYPE_INVOKE;<span>
</span><span style="color:#008000;">// 消息类型ID为20,表示该消息用AMF0编码,</span></span></div>
<div><span style="color:rgb(0,128,0);"><span></span>//&nbsp;参考rtmp协议:rtmp命令消息 --- 3.1节</span></div>
<div><span><span></span>packet.m_nTimeStamp = 0;<span>
</span><span style="color:#008000;">// 时间戳</span></span></div>
<div><span><span></span>packet.m_nInfoField2 = 0;<span>
</span><span style="color:#008000;">// 消息流id</span></span></div>
<div><span><span></span>packet.m_hasAbsTimestamp = 0;<span>
</span><span style="color:#008000;">// 相对时间</span></span></div>
<div><span><span></span>packet.m_body = pbuf + RTMP_MAX_HEADER_SIZE;</span></div>
<div><span><br></span></div>
<div><span><span></span>enc = packet.m_body;</span></div>
<div><span><span></span>enc = AMF_EncodeString(enc, pend, &amp;av_connect);<span>
</span><span style="color:#008000;">// 将"connnect"字符串采用AMF0编码</span></span></div>
<div><span><span></span>enc = AMF_EncodeNumber(enc, pend, ++r-&gt;m_numInvokes);<span>
</span><span style="color:#008000;">// 编码命令消息的数目,也就是传输ID</span></span></div>
<div><span><span></span>*enc++ = AMF_OBJECT;<span>
</span><span style="color:#008000;">// 接下来是AMF对象,内含多个属性编码</span></span></div>
<div><span><br></span></div>
<div><span><span></span><span style="color:#008000;">// 编码客户端要连接到的服务应用名</span></span></div>
<div><span><span></span>enc = AMF_EncodeNamedString(enc, pend, &amp;av_app, &amp;r-&gt;Link.app);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><br></span></div>
<div><span><span></span>if (r-&gt;Link.protocol &amp; RTMP_FEATURE_WRITE)</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span>enc = AMF_EncodeNamedString(enc, pend, &amp;av_type, &amp;av_nonprivate);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; }</span></div>
<div><span><br></span></div>
<div><span><span></span>if (r-&gt;Link.flashVer.av_len)</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span><span style="color:#008000;">// 编码flash播放器版本</span></span></div>
<div><span><span></span>enc = AMF_EncodeNamedString(enc, pend, &amp;av_flashVer, &amp;r-&gt;Link.flashVer);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><span></span>}</span></div>
<div><span><br></span></div>
<div><span><span></span>if (r-&gt;Link.swfUrl.av_len)</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span><span style="color:#008000;">// 编码发起连接的swf文件的url</span></span></div>
<div><span><span></span>enc = AMF_EncodeNamedString(enc, pend, &amp;av_swfUrl, &amp;r-&gt;Link.swfUrl);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><span></span>}</span></div>
<div><span><br></span></div>
<div><span><span></span>if (r-&gt;Link.tcUrl.av_len)</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span><span style="color:#008000;">// 编码服务url,有下列的格式 &nbsp;protocol://servername:port/appName/appInstance</span></span></div>
<div><span><span></span>enc = AMF_EncodeNamedString(enc, pend, &amp;av_tcUrl, &amp;r-&gt;Link.tcUrl);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><span></span>}</span></div>
<div><span><br></span></div>
<div><span><span></span>if (!(r-&gt;Link.protocol &amp; RTMP_FEATURE_WRITE))</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span><span style="color:#008000;">// 编码是否使用代理</span></span></div>
<div><span><span></span>enc = AMF_EncodeNamedBoolean(enc, pend, &amp;av_fpad, FALSE);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><br></span></div>
<div><span><span></span>enc = AMF_EncodeNamedNumber(enc, pend, &amp;av_capabilities, 15.0);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><br></span></div>
<div><span><span></span><span style="color:#008000;">// 编码客户端支持的音频编解码器</span></span></div>
<div><span><span></span>enc = AMF_EncodeNamedNumber(enc, pend, &amp;av_audioCodecs, r-&gt;m_fAudioCodecs);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><br></span></div>
<div><span><span></span><span style="color:#008000;">// 编码支持的视频编解码器</span></span></div>
<div><span><span></span>enc = AMF_EncodeNamedNumber(enc, pend, &amp;av_videoCodecs, r-&gt;m_fVideoCodecs);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><br></span></div>
<div><span><span></span>enc = AMF_EncodeNamedNumber(enc, pend, &amp;av_videoFunction, 1.0);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><br></span></div>
<div><span><span></span>if (r-&gt;Link.pageUrl.av_len)</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span><span style="color:#008000;">// 编码SWF文件被加载的页面的Url</span></span></div>
<div><span><span></span>enc = AMF_EncodeNamedString(enc, pend, &amp;av_pageUrl, &amp;r-&gt;Link.pageUrl);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><span></span>}</span></div>
<div><span><span></span>}</span></div>
<div><span><br></span></div>
<div><span><span></span>if (r-&gt;m_fEncoding != 0.0 || r-&gt;m_bSendEncoding)</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span><span style="color:#008000;">/* AMF0, AMF3 not fully supported yet, AMF编码方法 */</span></span></div>
<div><span><span></span>enc = AMF_EncodeNamedNumber(enc, pend, &amp;av_objectEncoding, r-&gt;m_fEncoding);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; }</span></div>
<div><span><br></span></div>
<div><span><span></span>if (enc + 3 &gt;= pend)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span></span></div>
<div><span><span></span><span style="color:#008000;">// AMF对象结束标志</span></span></div>
<div><span><span></span>*enc++ = 0;</span></div>
<div><span><span></span>*enc++ = 0;<span>
</span><span style="color:#008000;">/* end of object - 0x00 0x00 0x09 */</span></span></div>
<div><span><span></span>*enc++ = AMF_OBJECT_END;</span></div>
<div><span><br></span></div>
<div><span><span></span><span style="color:#008000;">/* add auth string */</span></span></div>
<div><span><span></span>if (r-&gt;Link.auth.av_len)</span></div>
<div><span>&nbsp; &nbsp; &nbsp; &nbsp; {</span></div>
<div><span><span></span>enc = AMF_EncodeBoolean(enc, pend, r-&gt;Link.lFlags &amp; RTMP_LF_AUTH);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><br></span></div>
<div><span><span></span>enc = AMF_EncodeString(enc, pend, &amp;r-&gt;Link.auth);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><span></span>}</span></div>
<div><span><br></span></div>
<div><span><span></span>if (r-&gt;Link.extras.o_num)</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span>int i;</span></div>
<div><span><span></span>for (i = 0; i &lt; r-&gt;Link.extras.o_num; i++)</span></div>
<div><span><span></span>{</span></div>
<div><span><span></span>enc = AMFProp_Encode(&amp;r-&gt;Link.extras.o_props[i], enc, pend);</span></div>
<div><span><span></span>if (!enc)</span></div>
<div><span><span></span>return FALSE;</span></div>
<div><span><span></span>}</span></div>
<div><span><span></span>}</span></div>
<div><span><br></span></div>
<div><span><span></span>packet.m_nBodySize = enc - packet.m_body;</span></div>
<div><span><span></span>return&nbsp;<span style="color:#ff0000;">RTMP_SendPacket</span>(r, &amp;packet, TRUE);</span></div>
<div><span>}</span></div>
</div>
</div>
<span><br style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;"></span>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span><span style="font-size:12px;line-height:22.75px;">&nbsp; &nbsp; &nbsp; &nbsp;发送各种命令消息的过程比较相似,基本上都是先建立一个 RTMPPacket 格式的包packet,然后填充该packet的各个字段。</span><span style="line-height:22px;font-size:12px;">各字段的取值可以参考不同命令消息的文档,其中最复杂的一个过程就是生成packet.m_body数据。一旦packet的封装完成,最后都是调用</span><span style="line-height:22px;font-size:12px;">RTMP_SendPacket()</span><span style="line-height:22px;font-size:12px;">函数来发送这个packet。</span><span style="line-height:22px;font-size:12px;">RTMP_SendPacket()</span><span style="line-height:22px;font-size:12px;">函数代码比较长,会在后续单独的一篇文章中详细分析其代码。</span></span></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<span><span style="line-height:22px;font-size:12px;"><span style="line-height:22.75px;"></span>最后用一个图总结</span><span style="font-size:12px;line-height:22.75px;"><span style="line-height:22px;">函数RTMP_Connect()</span><span style="line-height:22px;">的调</span></span><span style="line-height:22px;font-size:12px;">用关系:</span></span></div>
<div style="line-height:28px;color:rgb(59,59,59);font-family:'Hiragino Sans GB W3', 'Hiragino Sans GB', Arial, Helvetica, simsun, u5b8bu4f53;font-size:16px;">
<div style="text-align:center;"><span><img alt="LibRTMP源代码分析5:建立网络连接(NetConnection) - nkwavelet - 小波的世界" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/873135377856589487.gif" style="border:0px;"></span></div>
</div>
</div>
</div>
</article>
</div>
<script>
(function(){
function collection(){
if (currentUserName) {
var markObj = {};
markObj.imgUrl ='https://csdnimg.cn/release/phoenix/static_blog/images/appqr.png';
var markPrompt = (new window.csdn.publicPrompt).init(markObj);
var maeked = '您已经收藏过';
if (!$(this).hasClass("liked")) {
$.ajax({
url: 'https://my.csdn.net/my/favorite/do_add/2',
dataType: 'json',
type: 'POST',
xhrFields: {
withCredentials: true
},
data: {
title: articleTit,
url: curentUrl,
share: 1,
map_name: ''
},
success: function(data) {
if (data.succ == 1) {
$('.btn-bookmark').addClass("liked");
$('.article-footer-bookmark-btn').addClass("liked").children('span').text('已收藏');
markPrompt.show({})
// alert('收藏成功,可以在个人中心查看我的收藏');
} else {
if (data.msg === "您已经收藏过") {
$('.btn-bookmark').addClass("liked");
$('.article-footer-bookmark-btn').addClass("liked").children('span').text('已收藏');
markPrompt.show({
titleStr: maeked
})
}else{
alert(data.msg);
}
}
}
});
} else {
markPrompt.show({
titleStr: maeked
})
}
} else {
window.csdn.loginBox.show();
}
}
window.csdn = window.csdn ? window.csdn : {};
window.csdn.articleCollection = collection;
function setArticleH(btnReadmore,posi){
var winH = $(window).height();
var articleBox = $("div.article_content");
var artH = articleBox.height();
if(artH > winH*posi){
articleBox.css({
'height':winH*posi+'px',
'overflow':'hidden'
})
btnReadmore.click(function(){
articleBox.removeAttr("style");
$(this).parent().remove()
})
}else{
btnReadmore.parent().remove()
}
}
var btnReadmore = $("#btn-readmore");
$('.article-footer-bookmark-btn').click(window.csdn.articleCollection)
if(btnReadmore.length>0){
if(currentUserName){
setArticleH(btnReadmore,3);
}else{
setArticleH(btnReadmore,1.2);
}
}else{
$('.hide-article-box').addClass('hide-article-style');
}
})()
</script>
<script>
$(".MathJax").remove();
if($('div.markdown_views pre.prettyprint code.hljs').length > 0 ){
$('div.markdown_views')[0].className = 'markdown_views';
}
</script>
<div id="dmp_ad_58"><div id="kp_box_58" data-pid="58" data-track-click="{&quot;mod&quot;:&quot;kp_popu_58-402&quot;,&quot;con&quot;:&quot;,,&quot;}"><div style="width:100%;background:#fff;border:3px solid #fff;">
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551767900888_291" id="QIHOO__WEB__SO__1551767900888_291" style="display:block;margin:0;padding:0;border:none;width:900px;height:100px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551767900888_291-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551767900888_291 singleImage clk" data-href="https://s1.shucaixiaoshuo.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b376ef18e686&amp;price=AAAAAFx+GVsAAAAAAAhrh4hdX0mM8p+r3rK3Xg==&amp;finfo=DAABCAABAAAB5QgAAgAAAG8EAAM/cIyXnQKaUwAIAAIAAAADCgADSDXUTWzQtIUIAAQAAAB4BgAGLbcKAAkAAAAAAAIQGAYACgAACgAPAAAAAABKC3wA&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoCzpubj1MEFAA&amp;uai=FZy4mwIlAhUCFq6F2ZSYzeW1kAEV8ggl6eat/QwlABUaFAAA&amp;ubi=FaLXTRXOsMYCFbSlpxcVmIC7WBUEFRwW+pnojxcWroXu+6GT6rWQATQCFrDAkIAIJQYVr9r2hAEVvgUVADbX0b6HqaCeiA0A&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=btR5jYnDLh1=&amp;url=http%3A%2F%2Fchuangshou.org.cn" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b376ef18e686&amp;p=2321934&amp;l=1136674&amp;s=1&amp;ps=0&amp;k=YClvwgAAAAA=&amp;i=91cdmq5mZ93C&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.milkjpg.com/galileo/636369-c1bfa1206b405db60fa5467f01bed832.jpg)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">科技园出了一位股市怪才,炒股2年他只靠1不败铁律</info-div>
<info-div class="singleImage-desc">渝和 · 鹓鶵</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script>
                                               NEWS_FEED({
                w: 900,
                h : 100,
                showid : 'ztvJV8',
                placeholderId: "three_ad1",
                inject : 'define',
                define : {
                    imagePosition : 'left',
                    imageBorderRadius : 0,
                    imageWidth: 90,
                    imageHeight: 68,
                    imageFill : 'clip',
                    displayImage : true,
                    displayTitle : true,
                    titleFontSize: 18,
                    titleFontColor: '#000',
                    titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
                    titleFontWeight: 'bold',
                    titlePaddingTop : 0,
                    titlePaddingRight : 0,
                    titlePaddingBottom : 5,
                    titlePaddingLeft : 16,
                    displayDesc : true,
                    descFontSize: 14,
                    descFontColor: '#8e959a',
                    descFontFamily : 'Microsoft YaHei',
                    paddingTop : 20,
                    paddingRight : 0,
                    paddingBottom : 0,
                    paddingLeft : 20,
                    backgroundColor: '#fff',
                    hoverColor: '#000'
                      }
                  })
                                        </script>
</div></div></div> <a id="commentBox"></a>
<div class="comment-box">
<div class="comment-edit-box d-flex">
<a id="commentsedit"></a>
<div class="user-img">
<a href="javascript:void(0);" target="_blank">
<img class="show_loginbox" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/anonymous-User-img.png">
</a>
</div>
<form id="commentform">
<input type="hidden" id="comment_replyId">
<textarea class="comment-content" name="comment_content" id="comment_content" placeholder="想对作者说点什么"></textarea>
<div class="opt-box"> <!-- d-flex -->
<div id="ubbtools" class="add_code">
<a href="#insertcode" code="code" target="_self"><i class="icon iconfont icon-daima"></i></a>
</div>
<input type="hidden" id="comment_replyId" name="comment_replyId">
<input type="hidden" id="article_id" name="article_id" value="48625871">
<input type="hidden" id="comment_userId" name="comment_userId" value="">
<input type="hidden" id="commentId" name="commentId" value="">
<div style="display: none;" class="csdn-tracking-statistics tracking-click" data-mod="popu_384"><a href="#" target="_blank" class="comment_area_btn">发表评论</a></div>
<div class="dropdown" id="myDrap">
<a class="dropdown-face d-flex align-items-center" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
<div class="txt-selected text-truncate">添加代码片</div>
<svg class="icon d-block" aria-hidden="true">
<use xlink:href="#csdnc-triangledown"></use>
</svg>
</a>
<ul class="dropdown-menu" id="commentCode" aria-labelledby="drop4">
<li><a data-code="html">HTML/XML</a></li>
<li><a data-code="objc">objective-c</a></li>
<li><a data-code="ruby">Ruby</a></li>
<li><a data-code="php">PHP</a></li>
<li><a data-code="csharp">C</a></li>
<li><a data-code="cpp">C++</a></li>
<li><a data-code="javascript">JavaScript</a></li>
<li><a data-code="python">Python</a></li>
<li><a data-code="java">Java</a></li>
<li><a data-code="css">CSS</a></li>
<li><a data-code="sql">SQL</a></li>
<li><a data-code="plain">其它</a></li>
</ul>
</div>
<div class="right-box">
<span id="tip_comment" class="tip">还能输入<em>1000</em>个字符</span>
<input type="submit" class="btn btn-sm btn-red btn-comment" value="发表评论">
</div>
</div>
</form>
</div>
<div class="comment-list-container">
<a id="comments"></a>
<div class="comment-list-box">
</div>
<div id="commentPage" class="pagination-box d-none"></div>
</div>
</div>
<div class="recommend-box">
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/weixin_34414650/article/details/85920859,BlogCommendFromBaidu_0,index_0&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/weixin_34414650/article/details/85920859" target="_blank" title="rtmp连接服务器失败(一个低级错误)">
<h4 class="text-truncate oneline" style="width: 552px;">
rtmp连接服务器失败(一个低级错误) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">07-26</span>
<span class="read-num hover-hide">
阅读数
11</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/weixin_34414650/article/details/85920859" target="_blank" title="rtmp连接服务器失败(一个低级错误)">
<span class="desc oneline">由于rtmp底层使用的也是socket,所以如果想正常使用RTMP_Connect();则需要在使用该连接之前先初始化套接字:WORDwVersionRequested;WSADATAwsaData;...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/weixin_34414650">来自: <span class="blog_title"> weixin_34414650的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident recommend-other-item-box" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://bbs.csdn.net/topics/390125039,BlogCommendFromBaidu_1,index_1&quot;}" data-flg="true">
<a href="https://bbs.csdn.net/topics/390125039" target="_blank">
<h4 class="text-truncate oneline" style="width: 623px;">
跪求RED5和项目整合后启动正常,1935端口也已经打开,但是 RTMP 就是连接不上 </h4>
<div class="info-box d-flex align-content-center">
<span class="date">07-07</span>
</div>
<p class="content oneline" style="width: 712px;">
<span class="desc oneline">跪求RED5和项目整合后启动正常,1935端口也已经打开,但是 RTMP 就是连接不上 用的是 red5 0.9 的版本 配置了 一个 abc-web.xml 和 abc-context.xml 其中</span>
<span class="type-show type-show-bbs">论坛</span>
</p>
</a>
</div>
<div class="recommend-item-box recommend-box-ident recommend-other-item-box" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,http://ask.csdn.net/questions/683564,BlogCommendFromBaidu_2,index_2&quot;}" data-flg="true">
<a href="http://ask.csdn.net/questions/683564" target="_blank">
<h4 class="text-truncate oneline" style="width: 623px;">
rtmp推流端连接不了服务端 </h4>
<div class="info-box d-flex align-content-center">
<span class="date">03-26</span>
</div>
<p class="content oneline" style="width: 712px;">
<span class="desc oneline">-</span>
<span class="type-show type-show-ask">问答</span>
</p>
</a>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_59" data-pid="59" data-track-view="{&quot;mod&quot;:&quot;kp_popu_59-78&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_59-78&quot;,&quot;con&quot;:&quot;,,&quot;}"><div id="_txqjcm12p8"><iframe scrolling="no" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/s.htm" width="852" height="60" frameborder="0"></iframe></div><script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/rxjg.js"></script></div></div>
<div class="recommend-item-box recommend-box-ident recommend-other-item-box" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://bbs.csdn.net/topics/392070096,BlogCommendFromBaidu_3,index_3&quot;}" data-flg="true">
<a href="https://bbs.csdn.net/topics/392070096" target="_blank">
<h4 class="text-truncate oneline" style="width: 623px;">
rtmp推流出现错误 </h4>
<div class="info-box d-flex align-content-center">
<span class="date">12-27</span>
</div>
<p class="content oneline" style="width: 712px;">
<span class="desc oneline">我用rtmp推流,过程是这样的 rtmp = RTMP_Alloc();//申请rtmp空间 RTMP_Init(rtmp);//初始化rtmp设置 RTMPPacket_Alloc(packet,</span>
<span class="type-show type-show-bbs">论坛</span>
</p>
</a>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/elesos/article/details/81296433,BlogCommendFromBaidu_4,index_4&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/elesos/article/details/81296433" target="_blank" title="RTMP流媒体播放过程:握手,建立连接,建立流,播放">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMP流媒体播放过程:握手,<em>建立</em>连接,<em>建立</em>流,播放 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">07-31</span>
<span class="read-num hover-hide">
阅读数
192</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/elesos/article/details/81296433" target="_blank" title="RTMP流媒体播放过程:握手,建立连接,建立流,播放">
<span class="desc oneline">本文讲述从打开一个RTMP流媒体到视音频数据开始播放的整个过程。&nbsp;播放一个流媒体有两个前提步骤:第一步,建立一个网络连接(NetConnection);第二步,建立一个网络流(NetStream)。其...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/elesos">来自: <span class="blog_title"> starRTC免费im直播会议一对一视频</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12957291,BlogCommendFromBaidu_5,index_5&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12957291" target="_blank" title="RTMPdump(libRTMP) 源代码分析 5: 建立一个流媒体连接 (NetConnection部分)">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPdump(<em>libRTMP</em><em>源代码分析</em> 5: <em>建立</em>一个流媒体连接 (NetConnection部分) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-23</span>
<span class="read-num hover-hide">
阅读数
1</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12957291" target="_blank" title="RTMPdump(libRTMP) 源代码分析 5: 建立一个流媒体连接 (NetConnection部分)">
<span class="desc oneline">本篇文章分析一下RTMPdump里面的建立一个流媒体连接过程中的函数调用。之前已经简单分析过流媒体链接的建立过程:而且分析过其函数调用过程:RTMPDump源代码分析0:主要函数调用分析在这里就不详细...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/lory17/article/details/61916351,BlogCommendFromBaidu_6,index_6&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/lory17/article/details/61916351" target="_blank" title="RTMP推流及协议学习">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMP推流及协议学习 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">03-13</span>
<span class="read-num hover-hide">
阅读数
1</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/lory17/article/details/61916351" target="_blank" title="RTMP推流及协议学习">
<span class="desc oneline">前期准备了解RTMP定义准备RTMPDump中的librtmp使用openssl中的libssllibcrypto推流工作整体框架图使用libtrmp提供的API将streaming封装成为RTMP格...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/lory17">来自: <span class="blog_title"> 菜鸟的学习笔记</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12958747,BlogCommendFromBaidu_7,index_7&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12958747" target="_blank" title="RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPdump(<em>libRTMP</em><em>源代码分析</em> 8: 发送消息(Message) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-23</span>
<span class="read-num hover-hide">
阅读数
1</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12958747" target="_blank" title="RTMPdump(libRTMP) 源代码分析 8: 发送消息(Message)">
<span class="desc oneline">之前写了一系列的文章介绍RTMPDump各种函数。比如怎么建立网络连接(NetConnection),怎么建立网络流(NetStream)之类的,唯独没有介绍这些发送或接收的数据,在底层到底是怎么实现...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_60" data-pid="60" data-track-view="{&quot;mod&quot;:&quot;kp_popu_60-43&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_60-43&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551767900964_209" id="QIHOO__WEB__SO__1551767900964_209" style="display:block;margin:0;padding:0;border:none;width:900px;height:84px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551767900964_209-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551767900964_209 singleImage clk" data-href="https://ssxd.mediav.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b376ca9c3c53&amp;price=AAAAAFx+GVsAAAAAAAkKCTcjQqyROBiYv5jFtA==&amp;finfo=DAABCAABAAAA3ggAAgAAAG0EAAM/YLbzjcFw7AAIAAIAAAADCgADUreEjKKSIFEIAAQAAABtBgAGLbcKAAkAAAAAAAIQFAYACgAACAAOAAAAPwoADwAAAAAAIfl9AA&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoCzpubj1MEFAA&amp;uai=FeTGlAIlAhUEFq6Fxb2O3b23pQEV8gglk5b71gUlABUaFAAA&amp;ubi=FZLsUBWeoMkCFfTBtBcV/NnaWBUEFRwW3oHFnhcWroXapJijwrelATQCFqjAECUGFd6FmoACFb4DFQA2wueEn5Xju799AA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=cg_Ui9TuQor=&amp;url=http%3A%2F%2Fgp.nsdx71.cn" data-pv="https://ssxd.mediav.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAA3ggAAgAAAG0EAAM/YLbzjcFw7AAIAAIAAAADCgADUreEjKKSIFEIAAQAAABtBgAGLbcKAAkAAAAAAAIQFAYACgAACAAOAAAAPwoADwAAAAAAIfl9AA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b376ca9c3c53&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoCzpubj1MEFAA&amp;uai=FeTGlAIlAhUEFq6Fxb2O3b23pQEV8gglk5b71gUlABUaFAAA&amp;ubi=FZLsUBWeoMkCFfTBtBcV/NnaWBUEFRwW3oHFnhcWroXapJijwrelATQCFqjAECUGFd6FmoACFb4DFQA2wueEn5Xju799AA&amp;ds=1&amp;price=AAAAAFx+GVsAAAAAAAkKCTcjQqyROBiYv5jFtA==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b376ca9c3c53&amp;p=2265522&amp;l=1136674&amp;s=1&amp;z=1&amp;ps=0&amp;w=AAAAAFx-GVsAAAAAAAkKLVTZmTn-5ThnYU30Pg&amp;pt=1&amp;k=R1WJiQAAAAA=&amp;i=IMPdlf5mZ93_&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b376ca9c3c53&amp;p=2265522&amp;l=1136674&amp;s=1&amp;ps=0&amp;k=R1WJiQAAAAA=&amp;i=IMPdlf5mZ93_&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.mediav.com/galileo/662281-b590d12201a466a34981c6dfaa10662f.jpg)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">股票“三不卖七不买“6字黄金口诀,只买井喷股 赢数百万身家!</info-div>
<info-div class="singleImage-desc">中资 · 顶新</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<script>
NEWS_FEED({
w: 900,
h : 84,
showid : 'Afihld',
placeholderId: "three_ad8",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 18,
titleFontColor: '#000',
titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 10,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626615,searchFromBaidu1_0,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626615,searchFromBaidu1_0,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/wongainia158158/article/details/48626615" target="_blank"> <h4 class="text-truncate oneline">...代码分析6:<em>建立</em>网络流 - wongainia158158的博客 - CSDN博客...</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-3</span> </p> </div> <p class="content oneline">来自: wongainia158158的博客 相关热词 libRTMP lib...LibRTMP源代码分析5:建立网络连接 09-21 546 ...</p> </a> </div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626907,searchFromBaidu1_1,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626907,searchFromBaidu1_1,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/wongainia158158/article/details/48626907" target="_blank"> <h4 class="text-truncate oneline"><em>LibRTMP</em><em>源代码分析</em>6 - wongainia158158的博客 - CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-20</span> </p> </div> <p class="content oneline"></p> </a> </div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12952977,BlogCommendFromBaidu_8,index_8&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12952977" target="_blank" title="RTMPdump 源代码分析 1: main()函数">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPdump <em>源代码分析</em> 1: main()函数 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-22</span>
<span class="read-num hover-hide">
阅读数
2</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12952977" target="_blank" title="RTMPdump 源代码分析 1: main()函数">
<span class="desc oneline">rtmpdump是一个用来处理RTMP流媒体的工具包,支持rtmp://,rtmpt://,rtmpe://,rtmpte://,andrtmps://等。之前在学习RTMP协议的时候,发现没有讲它源...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/m0_37826678/article/details/73692474,BlogCommendFromBaidu_9,index_9&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/m0_37826678/article/details/73692474" target="_blank" title="开发实现C++ RTMP直播拉流播放器">
<h4 class="text-truncate oneline" style="width: 552px;">
开发实现C++ RTMP直播拉流播放器 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-24</span>
<span class="read-num hover-hide">
阅读数
2858</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/m0_37826678/article/details/73692474" target="_blank" title="开发实现C++ RTMP直播拉流播放器">
<span class="desc oneline">背景该直播播放器的背景是来源于《拉流推流服务器设计》的一个分支,它的重点是把拉下来的流进行解码显示播放。设计点要实现跨平台,目前支持的平台linux和windows要模块化和结构化可以拉各个平台的直播...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/m0_37826678">来自: <span class="blog_title"> 不成名的博客</span></a>
</span>
</p>
</div>
</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12954329,searchFromBaidu1_2,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12954329,searchFromBaidu1_2,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/leixiaohua1020/article/details/12954329" target="_blank"> <h4 class="text-truncate oneline">RTMPdump(<em>libRTMP</em>)<em>源代码分析</em> 4: 连接第一步——握手(H..._CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-5</span> </p> </div> <p class="content oneline">RTMPDump (libRTMP)的整体的函数调用结构图如下图所示。 单击查看大图 详细分析...LibRTMP源代码分析5:建立网络连接 - wongainia158158的博客 09-21 549 服务...</p> </a> </div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061235,searchFromBaidu1_3,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061235,searchFromBaidu1_3,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/tongjing524/article/details/38061235" target="_blank"> <h4 class="text-truncate oneline"><em>LibRTMP</em><em>源代码分析</em>7:发送消息(Send Message) - tongjin..._CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">10-15</span> </p> </div> <p class="content oneline">wongainia158158 09-21 330 在详细分析函数RTMP_SendPacket()之前,让我们来看看...LibRTMP源代码分析5:建立网络连接 wongainia158158 09-21 531 服务器和客户...</p> </a> </div>
<div class="recommend-item-box blog-expert-recommend-box" style="display: block;">
<div class="d-flex">
<div class="blog-expert-recommend">
<div class="blog-expert">
<div class="blog-expert-flexbox" data-track-view="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48625871&quot;}"><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-track-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48625871&quot;}"><a href="https://blog.csdn.net/byxdaz" target="_blank"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_byxdaz.jpg" alt="byxdaz" title="byxdaz"><svg class="icon" aria-hidden="true"><use xlink:href="#csdnc-blogexpert"></use></svg></a><span data-track-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48625871&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="byxdaz" data-nick="byxdaz">关注</span></span></div><div class="info"><span data-track-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48625871&quot;}"><a href="https://blog.csdn.net/byxdaz" target="_blank"><h5 class="oneline" title="byxdaz">byxdaz</h5></a></span> <p></p><p class="article-num" title="950篇文章"> 950篇文章</p><p class="article-num" title="排名:86"> 排名:86</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-track-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48625871&quot;}"><a href="https://blog.csdn.net/wongainia158158" target="_blank"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_wongainia158158.gif" alt="wongainia158158" title="wongainia158158"></a><span data-track-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48625871&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="wongainia158158" data-nick="wongainia158158">关注</span></span></div><div class="info"><span data-track-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48625871&quot;}"><a href="https://blog.csdn.net/wongainia158158" target="_blank"><h5 class="oneline" title="wongainia158158">wongainia158158</h5></a></span> <p></p><p class="article-num" title="47篇文章"> 47篇文章</p><p class="article-num" title="排名:千里之外"> 排名:千里之外</p><p></p></div></div></div><div class="blog-expert-item"><div class="blog-expert-info-box"><div class="blog-expert-img-box" data-track-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48625871&quot;}"><a href="https://blog.csdn.net/huangmindong" target="_blank"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_huangmindong.gif" alt="huangmindong" title="huangmindong"></a><span data-track-click="{&quot;mod&quot;:&quot;popu_710&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48625871&quot;}"><span class="blog-expert-button-follow btn-red-follow" data-name="huangmindong" data-nick="huangmindong">关注</span></span></div><div class="info"><span data-track-click="{&quot;mod&quot;:&quot;popu_709&quot;,&quot;con&quot;:&quot;https://blog.csdn.net/wongainia158158/article/details/48625871&quot;}"><a href="https://blog.csdn.net/huangmindong" target="_blank"><h5 class="oneline" title="huangmindong">huangmindong</h5></a></span> <p></p><p class=
</div>
</div>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/HandsomeHong/article/details/79122539,BlogCommendFromBaidu_10,index_10&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/HandsomeHong/article/details/79122539" target="_blank" title="librtmp源码分析--AMF编码">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em>源码分析--AMF编码 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-21</span>
<span class="read-num hover-hide">
阅读数
307</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/HandsomeHong/article/details/79122539" target="_blank" title="librtmp源码分析--AMF编码">
<span class="desc oneline">Bytes.h//自已字节序的一些宏,在win32平台下,系统的字节序默认为小端字节序#ifndef__BYTES_H__#define__BYTES_H__#include#ifdef_WIN32/...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/HandsomeHong">来自: <span class="blog_title"> HandsomeHong的博客</span></a>
</span>
</p>
</div>
</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u011244446/article/details/46764593,searchFromBaidu1_4,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u011244446/article/details/46764593,searchFromBaidu1_4,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/u011244446/article/details/46764593" target="_blank"> <h4 class="text-truncate oneline">rtmp 协议分析及交互过程 - u011244446的专栏 - CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-16</span> </p> </div> <p class="content oneline">播放一个RTMP协议的流媒体需要经过以下几个步骤:握手,建立连接,建立流,播放。RTMP...LibRTMP源代码分析5:建立网络连接 - wongainia158158的博客 09-21 555 服务...</p> </a> </div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/lcalqf/article/details/78849912,searchFromBaidu1_5,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/lcalqf/article/details/78849912,searchFromBaidu1_5,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/lcalqf/article/details/78849912" target="_blank"> <h4 class="text-truncate oneline">rtmp源码分析 - lcalqf的专栏 - CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-17</span> </p> </div> <p class="content oneline">RTMP_ClientPacket() 是用来处理消息,根据不同的消息,做不同的调用。...LibRTMP源代码分析5:建立网络连接 - wongainia158158的博客 09-21 557 服务...</p> </a> </div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12954329,BlogCommendFromBaidu_11,index_11&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12954329" target="_blank" title="RTMPdump(libRTMP)源代码分析 4: 连接第一步——握手(Hand Shake)">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPdump(<em>libRTMP</em><em>源代码分析</em> 4: 连接第一步——握手(Hand Shake) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-22</span>
<span class="read-num hover-hide">
阅读数
1</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12954329" target="_blank" title="RTMPdump(libRTMP)源代码分析 4: 连接第一步——握手(Hand Shake)">
<span class="desc oneline">在这里分析一下RTMPdump连接到支持RTMP协议的服务器的第一步:握手(HandShake)。RTMP连接的过程曾经分析过:RTMP流媒体播放过程在这里不再细说,分析一下位于handshake.h...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/Newyan3651/article/details/53130265,BlogCommendFromGuangxin_12,index_12&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/Newyan3651/article/details/53130265" target="_blank" title="ONVIF、RTSP/RTP、FFMPEG的开发实录">
<h4 class="text-truncate oneline" style="width: 552px;">
ONVIF、RTSP/RTP、FFMPEG的开发实录 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">11-11</span>
<span class="read-num hover-hide">
阅读数
6878</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/Newyan3651/article/details/53130265" target="_blank" title="ONVIF、RTSP/RTP、FFMPEG的开发实录">
<span class="desc oneline">ONVIF、RTSP/RTP、FFMPEG的开发实录前言本文从零基础一步步实现ONVIF协议、RTSP/RTP协议获取IPC实时视频流、FFMPEG解码。开发环境为WIN732位+VS2010。最终成...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/Newyan3651">来自: <span class="blog_title"> Newyan3651的博客</span></a>
</span>
</p>
</div>
</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061317,searchFromBaidu1_6,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061317,searchFromBaidu1_6,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/tongjing524/article/details/38061317" target="_blank"> <h4 class="text-truncate oneline"><em>LibRTMP</em><em>源代码分析</em>10:处理消息(Handle Message) - tong..._CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-17</span> </p> </div> <p class="content oneline">&nbsp;* &nbsp;协议控制消息的定义可参考官方协议:RTMP消息格式(第5章)...// 建立网络流,通常发生在建立网络连接(NetConnection)之后,播放(Play)之前 else...</p> </a> </div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/nb_vol_1/article/details/58610551,searchFromBaidu1_7,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/nb_vol_1/article/details/58610551,searchFromBaidu1_7,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/nb_vol_1/article/details/58610551" target="_blank"> <h4 class="text-truncate oneline">RTMP学习(四)RTMP连接的<em>建立</em>与播放 - NB_vol_1的专栏 - CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">11-14</span> </p> </div> <p class="content oneline">RTMP 是目前各种网络直播应用最核心的传输协议,也是互动直播采用最广泛的协议。 ...LibRTMP源代码分析5:建立网络连接 - wongainia158158的博客 09-21 551 服务...</p> </a> </div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_61" data-pid="61" data-track-view="{&quot;mod&quot;:&quot;kp_popu_61-557&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_61-557&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551767901457_17" id="QIHOO__WEB__SO__1551767901457_17" style="display:block;margin:0;padding:0;border:none;width:852px;height:60px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551767901457_17-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551767901457_17 singleImage clk" data-href="https://ssxd.mediav.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b37716fe5074&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoC8oOfj1MEFAA&amp;uai=FaixkwIlAhUEFq6J2e3WgsTZGxXyCCXFz+KtBiUAFRoUAAA&amp;ubi=Fcj8SxWg58cCFai6rhcVrP3LWBUEFRwW9NaK8BYWronu1ODIyNkbNAIWsMAQJQIVsI7V6QMVpgEVADaQvLTVybGAkegBAA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=qQaNPZX6fvo=&amp;url=http%3A%2F%2Fsx2.aihuaiedu.cn%2Fzc360%2Fzd%2Fpc%2Fd2%2F%3Fll-zd-sz-A701" data-pv="https://ssxd.mediav.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAAeQgAAgAAAFgEAAM/8AAAAAAAAAAIAAIAAAABCgADDdmRI4qA1p4IAAQAAAB5BgAGLbcKAAkAAAAAAAIQGAYACgAACgAPAAAAAAASdpAA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b37716fe5074&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoC8oOfj1MEFAA&amp;uai=FaixkwIlAhUEFq6J2e3WgsTZGxXyCCXFz+KtBiUAFRoUAAA&amp;ubi=Fcj8SxWg58cCFai6rhcVrP3LWBUEFRwW9NaK8BYWronu1ODIyNkbNAIWsMAQJQIVsI7V6QMVpgEVADaQvLTVybGAkegBAA&amp;ds=1&amp;price=AAAAAFx+GVwAAAAAAAK24Xb/aZYtVz3L6fTqmw==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b37716fe5074&amp;p=2255956&amp;l=1136674&amp;s=1&amp;z=1&amp;ps=0&amp;w=AAAAAFx-GVwAAAAAAAK3CNmv-gn-KIPLPO1FFg&amp;pt=1&amp;k=pTWX9QAAAAA=&amp;i=_hDm4KumZ9h7&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b37716fe5074&amp;p=2255956&amp;l=1136674&amp;s=1&amp;ps=0&amp;k=pTWX9QAAAAA=&amp;i=_hDm4KumZ9h7&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.mediav.com/galileo/622372-0b7d400b523b02b5e524f00536006c3f.jpg)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">2月起,科技园有种学历叫免考本科,一年课程,正规本科,学信网可查</info-div>
<info-div class="singleImage-desc">爱华学历中心 · 顶新</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<script>
NEWS_FEED({
w: 852,
h : 60,
showid : 'GNKXx7',
placeholderId: "three_ad13",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 18,
titleFontColor: '#000',
titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 0,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/LG1259156776/article/details/77097558,BlogCommendFromGuangxin_13,index_13&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/LG1259156776/article/details/77097558" target="_blank" title="【视频开发】ONVIF、RTSP/RTP、FFMPEG的开发实录">
<h4 class="text-truncate oneline" style="width: 552px;">
【视频开发】ONVIF、RTSP/RTP、FFMPEG的开发实录 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">08-11</span>
<span class="read-num hover-hide">
阅读数
1213</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/LG1259156776/article/details/77097558" target="_blank" title="【视频开发】ONVIF、RTSP/RTP、FFMPEG的开发实录">
<span class="desc oneline">ONVIF、RTSP/RTP、FFMPEG的开发实录前言本文从零基础一步步实现ONVIF协议、RTSP/RTP协议获取IPC实时视频流、FFMPEG解码。开发环境为WIN732位+VS2010。最终成...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/LG1259156776">来自: <span class="blog_title"> ZhangPY的专栏</span></a>
</span>
</p>
</div>
</div><div class="recommend-item-box baiduSearch recommend-box-ident" data-track-view="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/hffgjh/article/details/86699626,searchFromBaidu1_8,-&quot;}" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/hffgjh/article/details/86699626,searchFromBaidu1_8,-&quot;}" data-flg="true"> <a href="https://blog.csdn.net/hffgjh/article/details/86699626" target="_blank"> <h4 class="text-truncate oneline">RTMPdump(<em>libRTMP</em>) <em>源代码分析</em> 8 发送消息(Message) - ..._CSDN博客</h4> <div class="info-box d-flex align-content-center"> <p> <span class="date">2-22</span> </p> </div> <p class="content oneline">RTMPdump (libRTMP) 源代码分析5: 建立一个流媒体连接 (NetConnection部分) ...博文 来自: wongainia158158的博客 rtmpdump 移植记录 与 简单使用 07-29 ...</p> </a> </div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626615,BlogCommendFromQuerySearch_14,index_14&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48626615" target="_blank" title="LibRTMP源代码分析6:建立网络流">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>6:<em>建立</em>网络流 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
378</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48626615" target="_blank" title="LibRTMP源代码分析6:建立网络流">
<span class="desc oneline">建立了RTMP网络连接之后,客户端发送createStream命令到服务器端为消息连接创建一个逻辑通道。NetStream定义了这个传输逻辑通道,通过这个通道,音频流、视频流以及数据消息流可以通过连接...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/huangmindong/article/details/26574653,BlogCommendFromQuerySearch_15,index_15&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/huangmindong/article/details/26574653" target="_blank" title="LibRTMP源代码分析8:发送消息(Send RTMPPacket)">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>8:发送消息(Send RTMPPacket) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">05-22</span>
<span class="read-num hover-hide">
阅读数
1739</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/huangmindong/article/details/26574653" target="_blank" title="LibRTMP源代码分析8:发送消息(Send RTMPPacket)">
<span class="desc oneline">在详细分析函数RTMP_SendPacket()之前,让我们来看看RTMPPacket结构体的定义:typedefstructRTMPPacket{&nbsp;&nbsp;&nbsp;&nbsp;uint8_t&nbsp;m_headerType;/...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/huangmindong">来自: <span class="blog_title"> huangmindong的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/hffgjh/article/details/86915966,BlogCommendFromQuerySearch_16,index_16&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/hffgjh/article/details/86915966" target="_blank" title="RTMPdump(libRTMP) 源代码分析 5 建立一个流媒体连接 (NetConnection部分)">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPdump(<em>libRTMP</em><em>源代码分析</em> 5 <em>建立</em>一个流媒体连接 (NetConnection部分) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-10</span>
<span class="read-num hover-hide">
阅读数
47</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/hffgjh/article/details/86915966" target="_blank" title="RTMPdump(libRTMP) 源代码分析 5 建立一个流媒体连接 (NetConnection部分)">
<span class="desc oneline">RTMPdump(libRTMP)源代码分析5建立一个流媒体连接(NetConnection部分)</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/hffgjh">来自: <span class="blog_title"> hffgjh的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12971635,BlogCommendFromQuerySearch_17,index_17&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12971635" target="_blank" title="RTMPdump(libRTMP) 源代码分析 9: 接收消息(Message)(接收视音频数据)">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPdump(<em>libRTMP</em><em>源代码分析</em> 9: 接收消息(Message)(接收视音频数据) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-23</span>
<span class="read-num hover-hide">
阅读数
1</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12971635" target="_blank" title="RTMPdump(libRTMP) 源代码分析 9: 接收消息(Message)(接收视音频数据)">
<span class="desc oneline">前一篇文章分析了RTMPdump(libRTMP)的发送消息(Message)方面的源代码:RTMPdump(libRTMP)源代码分析8:发送消息(Message)在这里在研究研究接收消息(Mess...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_62" data-pid="62" data-track-view="{&quot;mod&quot;:&quot;kp_popu_62-556&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_62-556&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551767901504_885" id="QIHOO__WEB__SO__1551767901504_885" style="display:block;margin:0;padding:0;border:none;width:852px;height:60px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551767901504_885-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551767901504_885 singleImage clk" data-href="https://s1.shucaixiaoshuo.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b376ca9c3c53&amp;price=AAAAAFx+GVsAAAAAAAkKjYoXKdbRNaIom9FEPQ==&amp;finfo=DAABCAABAAAAzwgAAgAAAF0EAAM/YbLaWdJ9/wAIAAIAAAADCgADUreNpUGOt+UIAAQAAABgBgAGLbcKAAkAAAAAAAIQFAYACgAACAAOAAAAPwoADwAAAAAAH5XwAA&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoCzpubj1MEFAA&amp;uai=FeTGlAIlAhUEFq6Fxb2O3b23pQEV8gglk5b71gUlABUaFAAA&amp;ubi=FeKwTxWghcUCFfKXoRcVpM+sWBUEFRwW+pbglBcWroXvi6LpxrelATQEFqjAkIAIJQYVnp3sogIVvgUVADantY+IqJH00IwBAA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=zcKUrSyd_Bj=&amp;url=http%3A%2F%2Fdxswhy.com" data-pv="https://s1.shucaixiaoshuo.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAAzwgAAgAAAF0EAAM/YbLaWdJ9/wAIAAIAAAADCgADUreNpUGOt+UIAAQAAABgBgAGLbcKAAkAAAAAAAIQFAYACgAACAAOAAAAPwoADwAAAAAAH5XwAA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b376ca9c3c53&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoCzpubj1MEFAA&amp;uai=FeTGlAIlAhUEFq6Fxb2O3b23pQEV8gglk5b71gUlABUaFAAA&amp;ubi=FeKwTxWghcUCFfKXoRcVpM+sWBUEFRwW+pbglBcWroXvi6LpxrelATQEFqjAkIAIJQYVnp3sogIVvgUVADantY+IqJH00IwBAA&amp;ds=2&amp;price=AAAAAFx+GVsAAAAAAAkKjYoXKdbRNaIom9FEPQ==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b376ca9c3c53&amp;p=2265522&amp;l=1136674&amp;s=2&amp;z=1&amp;ps=0&amp;w=AAAAAFx-GVsAAAAAAAkKsQQQFsYOPLuND7OVfg&amp;pt=1&amp;k=R1WJiQAAAAA=&amp;i=IMBdlf5mZ9Zo&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b376ca9c3c53&amp;p=2265522&amp;l=1136674&amp;s=2&amp;ps=0&amp;k=R1WJiQAAAAA=&amp;i=IMBdlf5mZ9Zo&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.milkjpg.com/galileo/650289-8b9794ef5cd602052a960e33c0b248f9.jpg)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">科技园51岁股民凭8年资深股经探得1定律分析法,赢数百万身家!</info-div>
<info-div class="singleImage-desc">纬正实业 · 鹓鶵</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<script>
NEWS_FEED({
w: 852,
h : 60,
showid : 'Afihld',
placeholderId: "three_ad18",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 18,
titleFontColor: '#000',
titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 0,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/qinglongzhan/article/details/80612360,BlogCommendFromQuerySearch_18,index_18&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qinglongzhan/article/details/80612360" target="_blank" title="librtmp 源码结构分析">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em> 源码结构分析 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-07</span>
<span class="read-num hover-hide">
阅读数
43</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qinglongzhan/article/details/80612360" target="_blank" title="librtmp 源码结构分析">
<span class="desc oneline">原文地址:http://blog.csdn.net/gengxt2003/article/details/51610546感谢原作者的贡献第一步——握手(HandShake)代码在handshake....</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/qinglongzhan">来自: <span class="blog_title"> qinglongzhan的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/sunnylion1982/article/details/50564480,BlogCommendFromBaidu_19,index_19&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/sunnylion1982/article/details/50564480" target="_blank" title="libRTMP使用说明">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>libRTMP</em>使用说明 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-22</span>
<span class="read-num hover-hide">
阅读数
3173</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/sunnylion1982/article/details/50564480" target="_blank" title="libRTMP使用说明">
<span class="desc oneline">名称librtmp−RTMPDumpReal-TimeMessagingProtocolAPI库RTMPDumpRTMP(librtmp,-lrtmp)简介#include描述实时流协议(Real-T...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/sunnylion1982">来自: <span class="blog_title"> XXX的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/gengxt2003/article/details/51678565,BlogCommendFromBaidu_20,index_20&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/gengxt2003/article/details/51678565" target="_blank" title="用librtmp 接收数据">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em> 接收数据 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-15</span>
<span class="read-num hover-hide">
阅读数
1753</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/gengxt2003/article/details/51678565" target="_blank" title="用librtmp 接收数据">
<span class="desc oneline">使用librtmp接收数据时,需要注意的几个问题。</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/gengxt2003">来自: <span class="blog_title"> 为了理想而奋斗</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident recommend-download-box clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://download.csdn.net/download/b35838715/9582265,BlogCommendFromBaidu_21,index_21&quot;}" data-flg="true">
<a href="https://download.csdn.net/download/b35838715/9582265" target="_blank">
<div class="content clearfix">
<div class="">
<h4 class="text-truncate oneline clearfix">
<em>librtmp</em>源码 </h4>
<span class="data float-right">07-21</span>
</div>
<div class="desc oneline">
1 librtmp优化,并支持 chunksize发送 rtmp_-&gt;m_outChunkSize = 4096; rtmp_-&gt;m_bSendChunkSizeInfo = 1; 2 支持纯 ipv </div>
<span class="type-show type-show-download">下载</span>
</div>
</a>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/yangruibao/article/details/8160859,BlogCommendFromBaidu_22,index_22&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/yangruibao/article/details/8160859" target="_blank" title="socket缓冲区大小 .">
<h4 class="text-truncate oneline" style="width: 552px;">
socket缓冲区大小 . </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">11-08</span>
<span class="read-num hover-hide">
阅读数
3263</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/yangruibao/article/details/8160859" target="_blank" title="socket缓冲区大小 .">
<span class="desc oneline">http://blog.csdn.net/jfkidear/article/details/7826789&nbsp;socket缓冲区大小默认为64k理论上最优大小为带宽乘以往返时间(RTT通过pingip地...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/yangruibao">来自: <span class="blog_title"> yangruibao的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_63" data-pid="63" data-track-view="{&quot;mod&quot;:&quot;kp_popu_63-555&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_63-555&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551767901638_433" id="QIHOO__WEB__SO__1551767901638_433" style="display:block;margin:0;padding:0;border:none;width:852px;height:60px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551767901638_433-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551767901638_433 singleImage clk" data-href="https://s1.shucaixiaoshuo.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b37716fe5074&amp;price=AAAAAFx+GVwAAAAAAAK3bfoUNDzC+5SomOhong==&amp;finfo=DAABCAABAAAAiggAAgAAAFgEAAM/Vxclsky95wAIAAIAAAADCgADDdmaOzb6+ysIAAQAAABiBgAGLbcKAAkAAAAAAAIQGAYACgAACAAOAAAAPAoADwAAAAAAEnaPAA&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoC8oOfj1MEFAA&amp;uai=FaixkwIlAhUEFq6J2e3WgsTZGxXyCCXFz+KtBiUAFRoUAAA&amp;ubi=FYCWURXQlcoCFY7ctxcV1M7iWBUEFRwWjsOMnxcWromDvOqOzdkbNAQWsMCQgAglBhWk/fKzAhW+BRUANozixKahprf7BQA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=0ECMudaULH2=&amp;url=http%3A%2F%2Fwww.ne65d.cn%2F" data-pv="https://s1.shucaixiaoshuo.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAAiggAAgAAAFgEAAM/Vxclsky95wAIAAIAAAADCgADDdmaOzb6+ysIAAQAAABiBgAGLbcKAAkAAAAAAAIQGAYACgAACAAOAAAAPAoADwAAAAAAEnaPAA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b37716fe5074&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoC8oOfj1MEFAA&amp;uai=FaixkwIlAhUEFq6J2e3WgsTZGxXyCCXFz+KtBiUAFRoUAAA&amp;ubi=FYCWURXQlcoCFY7ctxcV1M7iWBUEFRwWjsOMnxcWromDvOqOzdkbNAQWsMCQgAglBhWk/fKzAhW+BRUANozixKahprf7BQA&amp;ds=2&amp;price=AAAAAFx+GVwAAAAAAAK3bfoUNDzC+5SomOhong==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b37716fe5074&amp;p=2255956&amp;l=1136674&amp;s=2&amp;z=1&amp;ps=0&amp;w=AAAAAFx-GVwAAAAAAAK3kRdcUBmlF8gTZgXHHQ&amp;pt=1&amp;k=pTWX9QAAAAA=&amp;i=_gAm4KumZ9h6&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b37716fe5074&amp;p=2255956&amp;l=1136674&amp;s=2&amp;ps=0&amp;k=pTWX9QAAAAA=&amp;i=_gAm4KumZ9h6&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.milkjpg.com/galileo/664960-81f8efa06acac89d8aca734bae30e539.jpg)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">股王经典口诀,涨三不追,跌四不压....看完恍然大悟</info-div>
<info-div class="singleImage-desc">投石 · 鹓鶵</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<script>
NEWS_FEED({
w: 852,
h : 60,
showid : 'GNKXx7',
placeholderId: "three_ad23",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 18,
titleFontColor: '#000',
titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 0,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u014287775/article/details/72818094,BlogCommendFromBaidu_23,index_23&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u014287775/article/details/72818094" target="_blank" title="LibRTMP优化之调整输出块大小">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em>优化之调整输出块大小 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">05-31</span>
<span class="read-num hover-hide">
阅读数
497</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u014287775/article/details/72818094" target="_blank" title="LibRTMP优化之调整输出块大小">
<span class="desc oneline">1.&nbsp;为什么要调整输出块大小首先在RTMP_Connect0函数中LibRTMP是关闭了Nagle算法这个TCP选项的,为了实时性这样做是好的,但是要注意到LibRTMP的结构体RTMP的成员是有m_...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/u014287775">来自: <span class="blog_title"> 落幕的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/fireroll/article/details/18942873,BlogCommendFromQuerySearch_24,index_24&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/fireroll/article/details/18942873" target="_blank" title="RTMPDump(libRTMP) 源代码分析">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPDump(<em>libRTMP</em><em>源代码分析</em> </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-05</span>
<span class="read-num hover-hide">
阅读数
2461</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/fireroll/article/details/18942873" target="_blank" title="RTMPDump(libRTMP) 源代码分析">
<span class="desc oneline">之前分析了一下RTMPDump的Main()函数,其中获取RTMP流媒体数据很重要的前提是RTMP的URL的解析。如果没有这一步,那程序在强大也是白搭。现在来解析一下这个函数吧:RTMP_ParseU...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/fireroll">来自: <span class="blog_title"> 北雨南萍</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48624409,BlogCommendFromQuerySearch_25,index_25&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48624409" target="_blank" title="LibRTMP源代码分析1">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>1 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
440</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48624409" target="_blank" title="LibRTMP源代码分析1">
<span class="desc oneline">1.&nbsp;背景知识&nbsp;&nbsp;RTMP(RealTimeMessagingProtocol)实时消息传送协议是Adobe&nbsp;Systems公司为Flash播放器和服务器之间音频、视频和数据传输开发的开放协议。RTM...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061083,BlogCommendFromQuerySearch_26,index_26&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/tongjing524/article/details/38061083" target="_blank" title="LibRTMP源代码分析1:概述">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>1:概述 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">07-23</span>
<span class="read-num hover-hide">
阅读数
652</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/tongjing524/article/details/38061083" target="_blank" title="LibRTMP源代码分析1:概述">
<span class="desc oneline">此系列文章主要总结一下我在学习RTMP协议以及LibRTMP源代码过程中积累的经验。&nbsp;详细分析了RTMP源代码是如何与RTMP协议对应起来的,使得代码与协议有明确的对应关系,便于理解协议和使用LibR...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/tongjing524">来自: <span class="blog_title"> tongjing524的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48625123,BlogCommendFromQuerySearch_27,index_27&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48625123" target="_blank" title="LibRTMP源代码分析2">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>2 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
307</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48625123" target="_blank" title="LibRTMP源代码分析2">
<span class="desc oneline">获取RTMP流媒体数据很重要的前提是RTMP的URL的解析,首先回顾一下
RTMP的URL的格
式:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url=“rtmp://pub1.guoshi.com:1935
/pushstation/2...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_64" data-pid="64" data-track-view="{&quot;mod&quot;:&quot;kp_popu_64-81&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_64-81&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551767901712_141" id="QIHOO__WEB__SO__1551767901712_141" style="display:block;margin:0;padding:0;border:none;width:852px;height:60px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551767901712_141-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551767901712_141 singleImage clk" data-href="https://s1.shucaixiaoshuo.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b376ca9c3c53&amp;price=AAAAAFx+GVsAAAAAAAkLAKKPFOHTmykpnWsFZQ==&amp;finfo=DAABCAABAAAAxwgAAgAAAHgEAAM/Wy65b+7TOQAIAAIAAAADCgADUreo7ZCUT7sIAAQAAAB4BgAGLbcKAAkAAAAAAAIQFAYACgAACAAOAAAAPwoADwAAAAAAHl1wAA&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoCzpubj1MEFAA&amp;uai=FeTGlAIlAhUEFq6Fxb2O3b23pQEV8gglk5b71gUlABUaFAAA&amp;ubi=FaLXTRXOsMYCFbalpxcV4P+6WBUEFRwW+pnojxcWroWuwb+71LelATQGFqjAkIAIJQYV5ZrYtAIVvgUVADbX0b6HqaCeiA0A&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=btR5jYnDLh1=&amp;url=http%3A%2F%2Fchuangshou.org.cn" data-pv="https://s1.shucaixiaoshuo.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAAxwgAAgAAAHgEAAM/Wy65b+7TOQAIAAIAAAADCgADUreo7ZCUT7sIAAQAAAB4BgAGLbcKAAkAAAAAAAIQFAYACgAACAAOAAAAPwoADwAAAAAAHl1wAA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b376ca9c3c53&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoCzpubj1MEFAA&amp;uai=FeTGlAIlAhUEFq6Fxb2O3b23pQEV8gglk5b71gUlABUaFAAA&amp;ubi=FaLXTRXOsMYCFbalpxcV4P+6WBUEFRwW+pnojxcWroWuwb+71LelATQGFqjAkIAIJQYV5ZrYtAIVvgUVADbX0b6HqaCeiA0A&amp;ds=3&amp;price=AAAAAFx+GVsAAAAAAAkLAKKPFOHTmykpnWsFZQ==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b376ca9c3c53&amp;p=2265522&amp;l=1136674&amp;s=3&amp;z=1&amp;ps=0&amp;w=AAAAAFx-GVsAAAAAAAkLIIs92MEaOrH4505IGQ&amp;pt=1&amp;k=R1WJiQAAAAA=&amp;i=I2Pdlf5mZ9hS&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b376ca9c3c53&amp;p=2265522&amp;l=1136674&amp;s=3&amp;ps=0&amp;k=R1WJiQAAAAA=&amp;i=I2Pdlf5mZ9hS&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.milkjpg.com/galileo/636369-ee99c2178f3fd797802d63bf71cc7183.JPG)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">科技园竟有一位51岁股市奇才,炒股2年靠1个铁律,存款惊呆老婆</info-div>
<info-div class="singleImage-desc">渝和 · 鹓鶵</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/mvf_news_feed.js"></script>
<script>
NEWS_FEED({
w: 852,
h : 60,
showid : 'Afihld',
placeholderId: "three_ad28",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 18,
titleFontColor: '#000',
titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 0,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48630207,BlogCommendFromQuerySearch_28,index_28&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48630207" target="_blank" title="LibRTMP源代码分析3">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>3 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
264</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48630207" target="_blank" title="LibRTMP源代码分析3">
<span class="desc oneline">AMF协议是ActionMessageFormat协议的简称,AMF协议是Adobe公司的协议,主要用于数据交互和远程过程调用,在功能上与WebService相当,但AMF与WebService中的x...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/NB_vol_1/article/details/58610551,BlogCommendFromBaidu_29,index_29&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/NB_vol_1/article/details/58610551" target="_blank" title="RTMP学习(四)RTMP连接的建立与播放">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMP学习(四)RTMP连接的<em>建立</em>与播放 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-28</span>
<span class="read-num hover-hide">
阅读数
1579</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/NB_vol_1/article/details/58610551" target="_blank" title="RTMP学习(四)RTMP连接的建立与播放">
<span class="desc oneline">RTMP连接的建立与播放RTMP连接的步骤RTMP连接的建立有三个步骤:1、握手。用于判别客户端、服务器是否存在。2、建立网络连接。注意不是tcp中的网络连接。3、建立流连接。建立流连接的目的是传输媒...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/NB_vol_1">来自: <span class="blog_title"> NB_vol_1的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/43936141,BlogCommendFromBaidu_30,index_30&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/43936141" target="_blank" title="最简单的基于Flash的流媒体示例:RTMP推送和接收(ActionScript)">
<h4 class="text-truncate oneline" style="width: 552px;">
最简单的基于Flash的流媒体示例:RTMP推送和接收(ActionScript) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-25</span>
<span class="read-num hover-hide">
阅读数
5</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/43936141" target="_blank" title="最简单的基于Flash的流媒体示例:RTMP推送和接收(ActionScript)">
<span class="desc oneline">本文记录一些基于Flash的流媒体处理的例子。Flash平台最常见的流媒体协议是RTMP。此前记录的一些基于C/C++的RTMP播放器/推流器,但是没有记录过基于Flash中的ActionScript...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061215,BlogCommendFromBaidu_31,index_31&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/tongjing524/article/details/38061215" target="_blank" title="LibRTMP源代码分析6:建立网络流(NetStream)">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>6:<em>建立</em>网络流(NetStream) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">07-23</span>
<span class="read-num hover-hide">
阅读数
2200</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/tongjing524/article/details/38061215" target="_blank" title="LibRTMP源代码分析6:建立网络流(NetStream)">
<span class="desc oneline">转载自:http://nkwavelet.blog.163.com/blog/static/227756038201412124828594/建立了RTMP网络连接之后,客户端发送createStre...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/tongjing524">来自: <span class="blog_title"> tongjing524的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/z920954494/article/details/52108608,BlogCommendFromBaidu_32,index_32&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/z920954494/article/details/52108608" target="_blank" title="RTMP详解">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMP详解 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">08-03</span>
<span class="read-num hover-hide">
阅读数
4473</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/z920954494/article/details/52108608" target="_blank" title="RTMP详解">
<span class="desc oneline">RTMP协议是RealTimeMessageProtocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/z920954494">来自: <span class="blog_title"> 一点点进步</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_65" data-pid="65" data-track-view="{&quot;mod&quot;:&quot;kp_popu_65-84&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_65-84&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551767901724_252" id="QIHOO__WEB__SO__1551767901724_252" style="display:block;margin:0;padding:0;border:none;width:852px;height:60px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551767901724_252-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551767901724_252 singleImage clk" data-href="https://ssxd.mediav.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b37716fe5074&amp;price=AAAAAFx+GVwAAAAAAAK36i0G+hn3o+im3VDXXw==&amp;finfo=DAABCAABAAAAeQgAAgAAAEsEAAM/WLC4BjHAgQAIAAIAAAADCgADDdmjUy3+Fp4IAAQAAABQBgAGLbcKAAkAAAAAAAIQGAYACgAACAAOAAAAPAoADwAAAAAAEnaOAA&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoC8oOfj1MEFAA&amp;uai=FaixkwIlAhUEFq6J2e3WgsTZGxXyCCXFz+KtBiUAFRoUAAA&amp;ubi=FeT+UBXIuMkCFZKOtRcVgJLcWBUEFRwWwrXfnhcWromYo/TU0dkbNAYWsMAQJQYVg6HDXhXSBBUANonMvKeo+vG8EgA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=iVIxeECMuYy=&amp;url=http%3A%2F%2Fzcs.love028.cn%2F" data-pv="https://ssxd.mediav.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAAeQgAAgAAAEsEAAM/WLC4BjHAgQAIAAIAAAADCgADDdmjUy3+Fp4IAAQAAABQBgAGLbcKAAkAAAAAAAIQGAYACgAACAAOAAAAPAoADwAAAAAAEnaOAA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b37716fe5074&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoC8oOfj1MEFAA&amp;uai=FaixkwIlAhUEFq6J2e3WgsTZGxXyCCXFz+KtBiUAFRoUAAA&amp;ubi=FeT+UBXIuMkCFZKOtRcVgJLcWBUEFRwWwrXfnhcWromYo/TU0dkbNAYWsMAQJQYVg6HDXhXSBBUANonMvKeo+vG8EgA&amp;ds=3&amp;price=AAAAAFx+GVwAAAAAAAK36i0G+hn3o+im3VDXXw==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b37716fe5074&amp;p=2255956&amp;l=1136674&amp;s=3&amp;z=1&amp;ps=0&amp;w=AAAAAFx-GVwAAAAAAAK4CmNI9BxAidy0pkMs8w&amp;pt=1&amp;k=pTWX9QAAAAA=&amp;i=_g9m4KumZ9gO&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b37716fe5074&amp;p=2255956&amp;l=1136674&amp;s=3&amp;ps=0&amp;k=pTWX9QAAAAA=&amp;i=_g9m4KumZ9gO&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.mediav.com/galileo/663474-bd47dea5e160e23b948a9af0972cf59d.gif)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">良心记者揭露科技园蜂蜜市场黑幕!亲赴深山,发现惊人真相!</info-div>
<info-div class="singleImage-desc">新钥 · 顶新</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script>
NEWS_FEED({
w: 852,
h : 60,
showid : 'GNKXx7',
placeholderId: "three_ad33",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 18,
titleFontColor: '#000',
titleFontFamily : 'Lato,-apple-system,SF UI Text,Arial,PingFang SC,Hiragino Sans GB,Microsoft YaHei,WenQuanYi Micro Hei,sans-serif',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 0,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xiaojun111111/article/details/53521536,BlogCommendFromBaidu_33,index_33&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xiaojun111111/article/details/53521536" target="_blank" title="Adobe 官方公布的 RTMP 规范">
<h4 class="text-truncate oneline" style="width: 552px;">
Adobe 官方公布的 RTMP 规范 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">12-08</span>
<span class="read-num hover-hide">
阅读数
346</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xiaojun111111/article/details/53521536" target="_blank" title="Adobe 官方公布的 RTMP 规范">
<span class="desc oneline">转载:http://blog.csdn.net/defonds/article/details/17534903&nbsp;谢谢版主RTMP规范中文版PDF下载地址&nbsp;&nbsp;&nbsp;&nbsp;译序:本文是为截至发稿时止最新Adob...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/xiaojun111111">来自: <span class="blog_title"> xiaojun11的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48625103,BlogCommendFromQuerySearch_34,index_34&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48625103" target="_blank" title="LibRTMP源代码分析4">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>4 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
278</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48625103" target="_blank" title="LibRTMP源代码分析4">
<span class="desc oneline">在RTMP客户端和服务器端网络层连接成功之后,第一件事情就是RTMP的握手。至于为什么要握手,协议本身没有太多的描述,我理解的握手目的:握手的主要目的就是让客户端和服务器端互相打个招呼,其主要内容应该...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48626907,BlogCommendFromQuerySearch_35,index_35&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48626907" target="_blank" title="LibRTMP源代码分析6">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>6 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
641</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48626907" target="_blank" title="LibRTMP源代码分析6">
<span class="desc oneline">前面介绍了建立网络连接(NetConnection)和建立网络流(NetStream),这些命令数据是怎么发送出去的呢?在底层是怎么实现的呢?接下来就要详细分析各种消息的发送过程。首先大致列举一下消息...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48627003,BlogCommendFromQuerySearch_36,index_36&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48627003" target="_blank" title="LibRTMP源代码分析8:发送消息">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>8:发送消息 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
335</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48627003" target="_blank" title="LibRTMP源代码分析8:发送消息">
<span class="desc oneline">在详细分析函数RTMP_SendPacket()之前,让我们来看看RTMPPacket结构体的定义:typedefstructRTMPPacket{&nbsp;&nbsp;&nbsp;&nbsp;uint8_t&nbsp;m_headerType;/...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/15814587,BlogCommendFromQuerySearch_37,index_37&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/15814587" target="_blank" title="[总结]RTMP流媒体技术零基础学习方法">
<h4 class="text-truncate oneline" style="width: 552px;">
[总结]RTMP流媒体技术零基础学习方法 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">11-18</span>
<span class="read-num hover-hide">
阅读数
10</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/15814587" target="_blank" title="[总结]RTMP流媒体技术零基础学习方法">
<span class="desc oneline">本文主要总结一些我在学习RTMP流媒体技术过程中积累的经验。也为后来学习RTMP流媒体技术的人们一个参考。本文力图从简到难,循序渐进的介绍RTMP流媒体技术的方方面面,先从应用说起,逐步深化剖析相关工...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_66" data-pid="66" data-track-view="{&quot;mod&quot;:&quot;kp_popu_66-808&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_66-808&quot;,&quot;con&quot;:&quot;,,&quot;}"><iframe style="width: 100%; height: 60px; border: 0px none;" scrolling="no"></iframe></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u010380485/article/details/78727202,BlogCommendFromQuerySearch_38,index_38&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u010380485/article/details/78727202" target="_blank" title="基于librtmp的RTMP代理服务器(附代码)">
<h4 class="text-truncate oneline" style="width: 552px;">
基于<em>librtmp</em>的RTMP代理服务器(附代码) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">12-06</span>
<span class="read-num hover-hide">
阅读数
663</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u010380485/article/details/78727202" target="_blank" title="基于librtmp的RTMP代理服务器(附代码)">
<span class="desc oneline">本文是基于librtmp的rtmp代理服务器,目的是在客户端拉流的过程中能够抓取到客户端拉取流的数据,然后将数据做处理操作,处理完发送给客户端或挪作他用。...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/u010380485">来自: <span class="blog_title"> 阿小步</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/jl2011/article/details/49635345,BlogCommendFromBaidu_39,index_39&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/jl2011/article/details/49635345" target="_blank" title="一张图了解RTMP交互过程">
<h4 class="text-truncate oneline" style="width: 552px;">
一张图了解RTMP交互过程 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">11-04</span>
<span class="read-num hover-hide">
阅读数
332</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/jl2011/article/details/49635345" target="_blank" title="一张图了解RTMP交互过程">
<span class="desc oneline">一张图了解RTMP交互过程</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/jl2011">来自: <span class="blog_title"> jl2011的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u011244446/article/details/46764593,BlogCommendFromBaidu_40,index_40&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u011244446/article/details/46764593" target="_blank" title="rtmp 协议分析及交互过程">
<h4 class="text-truncate oneline" style="width: 552px;">
rtmp 协议分析及交互过程 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">07-05</span>
<span class="read-num hover-hide">
阅读数
7362</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u011244446/article/details/46764593" target="_blank" title="rtmp 协议分析及交互过程">
<span class="desc oneline">RTMP流媒体播放过程分类:&nbsp;RTMP2013-09-1511:19&nbsp;13039人阅读&nbsp;评论(9)&nbsp;收藏&nbsp;举报播放RTMP协议本文描述了从打开一个RTMP流媒体到视音频数据开始播放的全过程。注意:RT...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/u011244446">来自: <span class="blog_title"> u011244446的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/haima1998/article/details/78007123,BlogCommendFromBaidu_41,index_41&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/haima1998/article/details/78007123" target="_blank" title="RTMP 直播推流时延">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMP 直播推流时延 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-16</span>
<span class="read-num hover-hide">
阅读数
4380</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/haima1998/article/details/78007123" target="_blank" title="RTMP 直播推流时延">
<span class="desc oneline">转自:http://www.cnblogs.com/gongyuhonglou/p/5605320.html4.GOP-Cache什么是GOP?就是视频流中两个I帧的时间距离。GOP有什么影响?Fla...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/haima1998">来自: <span class="blog_title"> haima1998的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/HandsomeHong/article/details/79039881,BlogCommendFromBaidu_42,index_42&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/HandsomeHong/article/details/79039881" target="_blank" title="librtmp源码分析--日志部分">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em>源码分析--日志部分 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-12</span>
<span class="read-num hover-hide">
阅读数
241</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/HandsomeHong/article/details/79039881" target="_blank" title="librtmp源码分析--日志部分">
<span class="desc oneline">log.h文件#ifndef__RTMP_LOG_H__#define__RTMP_LOG_H__#include#include#include#ifdef__cplusplusextern"C"{...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/HandsomeHong">来自: <span class="blog_title"> HandsomeHong的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_67" data-pid="67" data-track-view="{&quot;mod&quot;:&quot;kp_popu_67-808&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_67-808&quot;,&quot;con&quot;:&quot;,,&quot;}"><iframe style="width: 100%; height: 60px; border: 0px none;" scrolling="no"></iframe></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/leixiaohua1020/article/details/12972399,BlogCommendFromBaidu_43,index_43&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12972399" target="_blank" title="RTMPdump(libRTMP) 源代码分析 10: 处理各种消息(Message)">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPdump(<em>libRTMP</em><em>源代码分析</em> 10: 处理各种消息(Message) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-24</span>
<span class="read-num hover-hide">
阅读数
1</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/leixiaohua1020/article/details/12972399" target="_blank" title="RTMPdump(libRTMP) 源代码分析 10: 处理各种消息(Message)">
<span class="desc oneline">已经连续写了一系列的博客了,其实大部分内容都是去年搞RTMP研究的时候积累的经验,回顾一下过去的知识,其实RTMPdump(libRTMP)主要的功能也都分析的差不多了,现在感觉还需要一些查漏补缺。主...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/leixiaohua1020">来自: <span class="blog_title"> 雷霄骅(leixiaohua1020)的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/zmy3376365/article/details/79005690,BlogCommendFromQuerySearch_44,index_44&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/zmy3376365/article/details/79005690" target="_blank" title="librtmp在windows下连接时出现10093错误">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em>在windows下连接时出现10093错误 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-08</span>
<span class="read-num hover-hide">
阅读数
202</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/zmy3376365/article/details/79005690" target="_blank" title="librtmp在windows下连接时出现10093错误">
<span class="desc oneline">在连接之前,先调用以下代码#includeWSADATAwsaData;intnRet;if((nRet=WSAStartup(MAKEWORD(2,2),&amp;wsaData))!=0){returnn...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/zmy3376365">来自: <span class="blog_title"> 鸟语的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48627119,BlogCommendFromQuerySearch_45,index_45&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48627119" target="_blank" title="LibRTMP源代码分析10:处理消息">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>10:处理消息 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
303</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48627119" target="_blank" title="LibRTMP源代码分析10:处理消息">
<span class="desc oneline">函数RTMP_ClientPacket()是libRTMP中最重要的核心函数之一,主要完成各种消息的处理。/**&nbsp;*@brief根据接收到的消息类型的不同,作出不同的处理。&nbsp;*&nbsp;消息类型有协议控制消息...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wongainia158158/article/details/48627039,BlogCommendFromQuerySearch_46,index_46&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48627039" target="_blank" title="LibRTMP源代码分析9:接收消息">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>9:接收消息 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-21</span>
<span class="read-num hover-hide">
阅读数
408</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wongainia158158/article/details/48627039" target="_blank" title="LibRTMP源代码分析9:接收消息">
<span class="desc oneline">在这里在研究接收消息(Message)的源代码,接收消息最典型的应用就是接收视音频数据了,因为视频和音频分别都属于RTMP协议规范中的一种消息。在这里主要分析接收视音频数据。LibRTMP中完成视音频...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wongainia158158">来自: <span class="blog_title"> wongainia158158的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/tongjing524/article/details/38061151,BlogCommendFromQuerySearch_47,index_47&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/tongjing524/article/details/38061151" target="_blank" title="LibRTMP源代码分析3:AMF编码">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>LibRTMP</em><em>源代码分析</em>3:AMF编码 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">07-23</span>
<span class="read-num hover-hide">
阅读数
936</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/tongjing524/article/details/38061151" target="_blank" title="LibRTMP源代码分析3:AMF编码">
<span class="desc oneline">AMF协议是ActionMessageFormat协议的简称,AMF协议是Adobe公司的协议,主要用于数据交互和远程过程调用,在功能上与WebService相当,但AMF与WebService中的x...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/tongjing524">来自: <span class="blog_title"> tongjing524的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-ad-box"><div id="kp_box_68" data-pid="68" data-track-view="{&quot;mod&quot;:&quot;kp_popu_68-654&quot;,&quot;con&quot;:&quot;,,&quot;}" data-track-click="{&quot;mod&quot;:&quot;kp_popu_68-654&quot;,&quot;con&quot;:&quot;,,&quot;}"><div class="mediav_ad"><newsfeed class="newsfeed QIHOO__WEB__SO__1551767901740_470" id="QIHOO__WEB__SO__1551767901740_470" style="display:block;margin:0;padding:0;border:none;width:900px;height:84px;overflow-y:hidden;overflow-x:hidden;position:relative;text-align:left;"><info-div id="QIHOO__WEB__SO__1551767901740_470-info" style="zoom:1"><info-div class="QIHOO__WEB__SO__1551767901740_470 singleImage clk" data-href="https://s1.shucaixiaoshuo.com/s?type=2&amp;r=20&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b376ca9c3c53&amp;price=AAAAAFx+GVsAAAAAAAkLYdL0vwNVw0dvm2J4WA==&amp;finfo=DAABCAABAAAAxQgAAgAAAEUEAAM/Z1Za7kAzcAAIAAIAAAADCgADUre7HoI5wqEIAAQAAABFBgAGLbcKAAkAAAAAAAIQFAYACgAACAAOAAAAPwoADwAAAAAAHg9QAA&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoCzpubj1MEFAA&amp;uai=FeTGlAIlAhUEFq6Fxb2O3b23pQEV8gglk5b71gUlABUaFAAA&amp;ubi=FaKRUBX4vMoCFfSBuRcV2r7kWBUEFRwWiNCInBcWroXYj9PH3belATQIFqjAkIAIJQYV1uWBoAIVpgEVADb+wdaov8yV81IA&amp;clickid=0&amp;cpx=__OFFSET_X__&amp;cpy=__OFFSET_Y__&amp;cs=__EVENT_TIME_START__&amp;ce=__EVENT_TIME_END__&amp;csign2=QzWflBYie8G=&amp;url=http%3A%2F%2Fdwx.hellorgod.top%2F" data-pv="https://s1.shucaixiaoshuo.com/s?type=1&amp;r=20&amp;tid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;finfo=DAABCAABAAAAxQgAAgAAAEUEAAM/Z1Za7kAzcAAIAAIAAAADCgADUre7HoI5wqEIAAQAAABFBgAGLbcKAAkAAAAAAAIQFAYACgAACAAOAAAAPwoADwAAAAAAHg9QAA&amp;mv_ref=blog.csdn.net&amp;enup=CAABPY1BbQgAAm1BjT0A&amp;mvid=MDUzMTc1NjU1MDczNzEwMDQwOTAwMTc&amp;bid=1332b376ca9c3c53&amp;ugi=FcTgigEVyNtrTBUCFUAVXhUAABXUmbV8FoAIFcgBFoCzpubj1MEFAA&amp;uai=FeTGlAIlAhUEFq6Fxb2O3b23pQEV8gglk5b71gUlABUaFAAA&amp;ubi=FaKRUBX4vMoCFfSBuRcV2r7kWBUEFRwWiNCInBcWroXYj9PH3belATQIFqjAkIAIJQYV1uWBoAIVpgEVADb+wdaov8yV81IA&amp;ds=4&amp;price=AAAAAFx+GVsAAAAAAAkLYdL0vwNVw0dvm2J4WA==,https://max-l.mediav.com/rtb?type=2&amp;d=100&amp;b=1332b376ca9c3c53&amp;p=2265522&amp;l=1136674&amp;s=4&amp;z=1&amp;ps=0&amp;w=AAAAAFx-GVsAAAAAAAkLgKIqVLq6AiuLWqn_3g&amp;pt=1&amp;k=R1WJiQAAAAA=&amp;i=I2Bdlf5mZ9hy&amp;v=05317565507371004090017" data-clk="https://max-l.mediav.com/rtb?type=3&amp;d=100&amp;b=1332b376ca9c3c53&amp;p=2265522&amp;l=1136674&amp;s=4&amp;ps=0&amp;k=R1WJiQAAAAA=&amp;i=I2Bdlf5mZ9hy&amp;v=05317565507371004090017&amp;x=__OFFSET_X__&amp;y=__OFFSET_Y__&amp;st=__EVENT_TIME_START__&amp;et=__EVENT_TIME_END__&amp;tc=&amp;turl=">
<info-div class="wrap">
<info-div class="singleImage-img singleImage-img-left">
<info-div class="img" style="background-image:url(https://s3m.milkjpg.com/galileo/656465-b4937571e3994aeafc6adb716ed7c59f.gif)"><info-div class="ads-tag"></info-div></info-div>
</info-div>
<info-div class="singleImage-body singleImage-body-left">
<info-div class="singleImage-title">一个长期喝土蜂蜜的人,竟然变成了这样,再忙也要看一下</info-div>
<info-div class="singleImage-desc">顺端 · 鹓鶵</info-div>
</info-div>
</info-div>
<info-div style="clear:both;"></info-div>
</info-div>
</info-div></newsfeed></div>
<script>
NEWS_FEED({
w: 900,
h : 84,
showid : 'Afihld',
placeholderId: "three_ad48",
inject : 'define',
define : {
imagePosition : 'left',
imageBorderRadius : 3,
imageWidth: 90,
imageHeight: 60,
imageFill : 'clip',
displayImage : true,
displayTitle : true,
titleFontSize: 16,
titleFontColor: '#000',
titleFontFamily : 'Microsoft Yahei',
titleFontWeight: 'bold',
titlePaddingTop : 0,
titlePaddingRight : 0,
titlePaddingBottom : 5,
titlePaddingLeft : 16,
displayDesc : true,
descFontSize: 14,
descFontColor: '#8e959a',
descFontFamily : 'Microsoft Yahei',
paddingTop : 10,
paddingRight : 0,
paddingBottom : 0,
paddingLeft : 0,
backgroundColor: '#fff',
hoverColor: '#000'
}
})
</script></div></div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/darkdragonking/article/details/40657451,BlogCommendFromQuerySearch_48,index_48&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/darkdragonking/article/details/40657451" target="_blank" title="RTMPdump(libRTMP) 源代码分析大汇总">
<h4 class="text-truncate oneline" style="width: 552px;">
RTMPdump(<em>libRTMP</em><em>源代码分析</em>大汇总 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-31</span>
<span class="read-num hover-hide">
阅读数
433</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/darkdragonking/article/details/40657451" target="_blank" title="RTMPdump(libRTMP) 源代码分析大汇总">
<span class="desc oneline">从高手那里转载来的,因为人家都直接弄好了链接了,我直接抄的链接,作为尊重...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/darkdragonking">来自: <span class="blog_title"> 暗黑世界</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xwjazjx1314/article/details/54693766,BlogCommendFromBaidu_49,index_49&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xwjazjx1314/article/details/54693766" target="_blank" title="librtmp协议分析---SendConnectPacket函数">
<h4 class="text-truncate oneline" style="width: 552px;">
<em>librtmp</em>协议分析---SendConnectPacket函数 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-23</span>
<span class="read-num hover-hide">
阅读数
642</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xwjazjx1314/article/details/54693766" target="_blank" title="librtmp协议分析---SendConnectPacket函数">
<span class="desc oneline">要想了解这个函数的作用,先了解一下这个图形。它是connect命令。</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/xwjazjx1314">来自: <span class="blog_title"> 终究还是能力达不到预期的目标</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/memoryjs/article/details/23993545,BlogCommendHotData_0,index_50&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/memoryjs/article/details/23993545" target="_blank" title="MTK平台安卓手机性能测试方法">
<h4 class="text-truncate oneline" style="width: 552px;">
MTK平台安卓手机性能测试方法 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">04-18</span>
<span class="read-num hover-hide">
阅读数
9107</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/memoryjs/article/details/23993545" target="_blank" title="MTK平台安卓手机性能测试方法">
<span class="desc oneline">笔者这段时间测试安卓手机,安卓手机的性能大家都知道了,用的时间长了就是卡,慢,需要刷机,而就算新买来的手机,偶尔滑动也有些卡顿,这次我就自己的测试方法,从开机时间,主页滑动的刷新频率,应用第一次启动速...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/memoryjs">来自: <span class="blog_title"> memoryjs的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/llxsharp/article/details/3888030,BlogCommendHotData_1,index_51&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/llxsharp/article/details/3888030" target="_blank" title="忘记Oracle数据库管理员密码的解决办法">
<h4 class="text-truncate oneline" style="width: 552px;">
忘记Oracle数据库管理员密码的解决办法 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-13</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/llxsharp/article/details/3888030" target="_blank" title="忘记Oracle数据库管理员密码的解决办法">
<span class="desc oneline">安装oracle 9i后,居然把刚刚更改的数据库管理员密码给忘了,又不重新安装,太麻烦了,试了好久,终于修改成功了。1、运行到C盘根目录2、输入:SET ORACLE_SID = 你的SID名称3、输...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/llxsharp">来自: <span class="blog_title"> llxsharp的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u011430225/article/details/54288184,BlogCommendHotData_2,index_52&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u011430225/article/details/54288184" target="_blank" title="QT选择目录等常用文件/文件夹操作">
<h4 class="text-truncate oneline" style="width: 552px;">
QT选择目录等常用文件/文件夹操作 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-09</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u011430225/article/details/54288184" target="_blank" title="QT选择目录等常用文件/文件夹操作">
<span class="desc oneline">QT 创建文件夹 bool QDir::mkdir ( const QString &amp;amp; dirName ) const
创建一个子目录名为目录名。[喝小酒的网摘]http://blog....</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/u011430225">来自: <span class="blog_title"> K7的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xue_mind/article/details/52959107,BlogCommendHotData_3,index_53&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xue_mind/article/details/52959107" target="_blank" title="java电商面试介绍">
<h4 class="text-truncate oneline" style="width: 552px;">
java电商面试介绍 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-28</span>
<span class="read-num hover-hide">
阅读数
3万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xue_mind/article/details/52959107" target="_blank" title="java电商面试介绍">
<span class="desc oneline">在青岛做了两年开发,大大小小参与过三个项目的开发,一个是某公司内部的人员管理系统,一个是物流项目,最近做的是一个电商项目。前两个项目采用的是ssh框架搭建的,最近的项目采用的是ssm框架搭建的。在实际...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/xue_mind">来自: <span class="blog_title"> x_minde</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/Luck_ZZ/article/details/79361497,BlogCommendHotData_4,index_54&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/Luck_ZZ/article/details/79361497" target="_blank" title="thymeleaf模板实现html5标签的非严格检查">
<h4 class="text-truncate oneline" style="width: 552px;">
thymeleaf模板实现html5标签的非严格检查 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-24</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/Luck_ZZ/article/details/79361497" target="_blank" title="thymeleaf模板实现html5标签的非严格检查">
<span class="desc oneline">一、概述最近在springboot项目引入thymeleaf模板时,使用非严格标签时,运行会报错。默认thymeleaf模板对html5标签是严格检查的。二、在项目中加NekoHTML库在Maven中...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/Luck_ZZ">来自: <span class="blog_title"> Luck_ZZ的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/meng564764406/article/details/52444644,BlogCommendHotData_5,index_55&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/meng564764406/article/details/52444644" target="_blank" title="将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化">
<h4 class="text-truncate oneline" style="width: 552px;">
将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-05</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/meng564764406/article/details/52444644" target="_blank" title="将Excel文件导入数据库(POI+Excel+MySQL+jsp页面导入)第一次优化">
<span class="desc oneline">本篇文章是根据我的上篇博客,给出的改进版,由于时间有限,仅做了一个简单的优化。相关文章:将excel导入数据库2018年4月1日,新增下载地址链接:点击打开源码下载地址十分抱歉,这个链接地址没有在这篇...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/meng564764406">来自: <span class="blog_title"> Lynn_Blog</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/roguesir/article/details/77104246,BlogCommendHotData_6,index_56&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/roguesir/article/details/77104246" target="_blank" title="人脸检测工具face_recognition的安装与应用">
<h4 class="text-truncate oneline" style="width: 552px;">
人脸检测工具face_recognition的安装与应用 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">08-11</span>
<span class="read-num hover-hide">
阅读数
3万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/roguesir/article/details/77104246" target="_blank" title="人脸检测工具face_recognition的安装与应用">
<span class="desc oneline">人脸检测工具face_recognition的安装与应用</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/roguesir">来自: <span class="blog_title"> roguesir的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u011860731/article/details/48733073,BlogCommendHotData_7,index_57&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u011860731/article/details/48733073" target="_blank" title="ThreadLocal的设计理念与作用">
<h4 class="text-truncate oneline" style="width: 552px;">
ThreadLocal的设计理念与作用 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-25</span>
<span class="read-num hover-hide">
阅读数
3万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u011860731/article/details/48733073" target="_blank" title="ThreadLocal的设计理念与作用">
<span class="desc oneline">Java中的ThreadLocal类允许我们创建只能被同一个线程读写的变量。因此,如果一段代码含有一个ThreadLocal变量的引用,即使两个线程同时执行这段代码,它们也无法访问到对方的Thread...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/u011860731">来自: <span class="blog_title"> u011860731的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wuchengzeng/article/details/50037611,BlogCommendHotData_8,index_58&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wuchengzeng/article/details/50037611" target="_blank" title="jquery/js实现一个网页同时调用多个倒计时(最新的)">
<h4 class="text-truncate oneline" style="width: 552px;">
jquery/js实现一个网页同时调用多个倒计时(最新的) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">11-25</span>
<span class="read-num hover-hide">
阅读数
26万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wuchengzeng/article/details/50037611" target="_blank" title="jquery/js实现一个网页同时调用多个倒计时(最新的)">
<span class="desc oneline">jquery/js实现一个网页同时调用多个倒计时(最新的)
最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!
//js
...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wuchengzeng">来自: <span class="blog_title"> websites</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/qq_36892341/article/details/73918672,BlogCommendHotData_9,index_59&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qq_36892341/article/details/73918672" target="_blank" title="linux上安装Docker(非常简单的安装方法)">
<h4 class="text-truncate oneline" style="width: 552px;">
linux上安装Docker(非常简单的安装方法) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-29</span>
<span class="read-num hover-hide">
阅读数
14万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qq_36892341/article/details/73918672" target="_blank" title="linux上安装Docker(非常简单的安装方法)">
<span class="desc oneline">最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗!
Docker的三大核心概念:镜像、容器、仓库
镜像:类似虚拟机的镜像、用俗话说就是安装文件。
容器:类似一个轻量...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/qq_36892341">来自: <span class="blog_title"> 我走小路的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/Ape55/article/details/73530419,BlogCommendHotData_10,index_60&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/Ape55/article/details/73530419" target="_blank" title="plsql的命令(command)窗口与sql窗口有什么区别20170620">
<h4 class="text-truncate oneline" style="width: 552px;">
plsql的命令(command)窗口与sql窗口有什么区别20170620 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-21</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/Ape55/article/details/73530419" target="_blank" title="plsql的命令(command)窗口与sql窗口有什么区别20170620">
<span class="desc oneline">command窗口是命令窗口,即为sqplus窗口,有命令提示符,识别sqlplus命令,基本的命令都可以执行
sql仅可执行DDL、select、DML等...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/Ape55">来自: <span class="blog_title"> Ape55的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wwwqjpcom/article/details/51232302,BlogCommendHotData_11,index_61&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wwwqjpcom/article/details/51232302" target="_blank" title="Selenium Webdriver重新使用已打开的浏览器实例">
<h4 class="text-truncate oneline" style="width: 552px;">
Selenium Webdriver重新使用已打开的浏览器实例 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">04-24</span>
<span class="read-num hover-hide">
阅读数
2万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wwwqjpcom/article/details/51232302" target="_blank" title="Selenium Webdriver重新使用已打开的浏览器实例">
<span class="desc oneline">2018-2-10更新:
新增了适用于Selenium3.8.1+FireFox57的Python版本的实现
https://github.com/ANBUZHIDAO/myFirefoxDr...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wwwqjpcom">来自: <span class="blog_title"> wwwqjpcom的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/themagickeyjianan/article/details/52386981,BlogCommendHotData_12,index_62&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/themagickeyjianan/article/details/52386981" target="_blank" title="python图片处理类之~PIL.Image模块(ios android icon图标自动生成处理)">
<h4 class="text-truncate oneline" style="width: 552px;">
python图片处理类之~PIL.Image模块(ios android icon图标自动生成处理) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">08-31</span>
<span class="read-num hover-hide">
阅读数
2万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/themagickeyjianan/article/details/52386981" target="_blank" title="python图片处理类之~PIL.Image模块(ios android icon图标自动生成处理)">
<span class="desc oneline">1.从pyCharm提示下载PIL包
&nbsp;http://www.pythonware.com/products/pil/
&nbsp;
2.解压后,进入到目录下
cd /Users/jianan/Dow...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/themagickeyjianan">来自: <span class="blog_title"> 专注于cocos+unity+服务器全栈</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/xiejiashu/article/details/34434669,BlogCommendHotData_13,index_63&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xiejiashu/article/details/34434669" target="_blank" title="用live555将内网摄像机视频推送到外网服务器,附源码">
<h4 class="text-truncate oneline" style="width: 552px;">
用live555将内网摄像机视频推送到外网服务器,附源码 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-25</span>
<span class="read-num hover-hide">
阅读数
2万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/xiejiashu/article/details/34434669" target="_blank" title="用live555将内网摄像机视频推送到外网服务器,附源码">
<span class="desc oneline">最近很多人问,如何将内网的摄像机流媒体数据发布到公网,如果用公网与局域网间的端口映射方式太过麻烦,一个摄像机要做一组映射,而且不是每一个局域网都是有固定ip地址,即使外网主机配置好了每一个摄像机的映射...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/xiejiashu">来自: <span class="blog_title"> Babosa的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/qq574857122/article/details/16361033,BlogCommendHotData_14,index_64&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qq574857122/article/details/16361033" target="_blank" title="强连通分量及缩点tarjan算法解析">
<h4 class="text-truncate oneline" style="width: 552px;">
强连通分量及缩点tarjan算法解析 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">11-16</span>
<span class="read-num hover-hide">
阅读数
39万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/qq574857122/article/details/16361033" target="_blank" title="强连通分量及缩点tarjan算法解析">
<span class="desc oneline">强连通分量:
简言之 就是找环(每条边只走一次,两两可达)
孤立的一个点也是一个连通分量
&nbsp;
使用tarjan算法 在嵌套的多个环中优先得到最大环( 最小环就是每个孤立点)
&nbsp;
定义:
int Ti...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/qq574857122">来自: <span class="blog_title"> 九野的博客</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/jimmy609/article/details/12748053,BlogCommendHotData_15,index_65&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/jimmy609/article/details/12748053" target="_blank" title="iText和flying saucer结合生成pdf的技术">
<h4 class="text-truncate oneline" style="width: 552px;">
iText和flying saucer结合生成pdf的技术 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">10-15</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/jimmy609/article/details/12748053" target="_blank" title="iText和flying saucer结合生成pdf的技术">
<span class="desc oneline">原博文地址
http://blog.csdn.net/shanliangliuxing/article/details/6833471
下面是我自己利用flying sau...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/jimmy609">来自: <span class="blog_title"> jimmy609的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/u013512448/article/details/52527237,BlogCommendHotData_16,index_66&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u013512448/article/details/52527237" target="_blank" title="如何生成OBB(OrientedboundingBox)方向包围盒">
<h4 class="text-truncate oneline" style="width: 552px;">
如何生成OBB(OrientedboundingBox)方向包围盒 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-13</span>
<span class="read-num hover-hide">
阅读数
4466</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/u013512448/article/details/52527237" target="_blank" title="如何生成OBB(OrientedboundingBox)方向包围盒">
<span class="desc oneline">一、包围盒简介:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 包围盒是一个简单的几何空间,里面包含着复杂形状的物体。为物体添加包围体的目的是快速的进行碰撞检测或者进行精确的碰撞检测之前进行过滤(即当包围体碰撞,才进行精确碰撞检...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/u013512448">来自: <span class="blog_title"> 二极管具有单向导电性</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/hero_fantao/article/details/34533533,BlogCommendHotData_17,index_67&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/hero_fantao/article/details/34533533" target="_blank" title="连续特征离散化和归一化">
<h4 class="text-truncate oneline" style="width: 552px;">
连续特征离散化和归一化 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">06-25</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/hero_fantao/article/details/34533533" target="_blank" title="连续特征离散化和归一化">
<span class="desc oneline">连续特征进行离散化处理。</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/hero_fantao">来自: <span class="blog_title"> hero_fantao的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/wangjun_pfc/article/details/3827631,BlogCommendHotData_18,index_68&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wangjun_pfc/article/details/3827631" target="_blank" title="修改mysql数据库的默认编码方式">
<h4 class="text-truncate oneline" style="width: 552px;">
修改mysql数据库的默认编码方式 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">01-18</span>
<span class="read-num hover-hide">
阅读数
5万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/wangjun_pfc/article/details/3827631" target="_blank" title="修改mysql数据库的默认编码方式">
<span class="desc oneline">修改my.ini文件加上default-character-set=gb2312设定数据库字符集alter database da_name default character set charset...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/wangjun_pfc">来自: <span class="blog_title"> 血色残阳的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/terry_water/article/details/39377255,BlogCommendHotData_19,index_69&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/terry_water/article/details/39377255" target="_blank" title="file_get_contents 得到https类型url失败的方法">
<h4 class="text-truncate oneline" style="width: 552px;">
file_get_contents 得到https类型url失败的方法 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-18</span>
<span class="read-num hover-hide">
阅读数
8327</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/terry_water/article/details/39377255" target="_blank" title="file_get_contents 得到https类型url失败的方法">
<span class="desc oneline">把file
function getSSLPage($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSF...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/terry_water">来自: <span class="blog_title"> Terry - 专注外贸B2C</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/gsycwh/article/details/52098097,BlogCommendHotData_20,index_70&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/gsycwh/article/details/52098097" target="_blank" title="WEB-INF下的jsp文件如何访问css和js文件">
<h4 class="text-truncate oneline" style="width: 552px;">
WEB-INF下的jsp文件如何访问css和js文件 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">08-02</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/gsycwh/article/details/52098097" target="_blank" title="WEB-INF下的jsp文件如何访问css和js文件">
<span class="desc oneline">今天帮一个同学找出了web项目问题的原因,这个问题是关于WEB-INF下的jsp文件如何访问css和js文件。先看一下文件的大致位置(jsp与css文件都同处WEB-INF内):该同学想WEB-INF...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/gsycwh">来自: <span class="blog_title"> 梦想的边缘</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/hanminaaa/article/details/52534666,BlogCommendHotData_21,index_71&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/hanminaaa/article/details/52534666" target="_blank" title="ArcGIS VS QGIS——两者之间的27点比较上篇(译)">
<h4 class="text-truncate oneline" style="width: 552px;">
ArcGIS VS QGIS——两者之间的27点比较上篇(译) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">09-14</span>
<span class="read-num hover-hide">
阅读数
1万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/hanminaaa/article/details/52534666" target="_blank" title="ArcGIS VS QGIS——两者之间的27点比较上篇(译)">
<span class="desc oneline">本文是笔者刚刚接触QGIS相关博客资源时找到的一篇文章,全文比较长,因此分成两篇发布。就内容而言不代表笔者观点,留待后续一一验证。QGIS和ArcGIS的比较你也许伴随着ArcGIS或者QGIS而成长...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/hanminaaa">来自: <span class="blog_title"> 番茄园</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/nicolas_li/article/details/50724153,BlogCommendHotData_22,index_72&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/nicolas_li/article/details/50724153" target="_blank" title="JAVA结合testng断言verify(断言失败不中断继续执行)">
<h4 class="text-truncate oneline" style="width: 552px;">
JAVA结合testng断言verify(断言失败不中断继续执行) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-23</span>
<span class="read-num hover-hide">
阅读数
6286</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/nicolas_li/article/details/50724153" target="_blank" title="JAVA结合testng断言verify(断言失败不中断继续执行)">
<span class="desc oneline">
原理:
1.自已构造一个断言类,把Assert.assertEquals给try catch住。
2.利用testng的监听类在测试方法运行结束后进行分析。
代码:
断言类:
...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/nicolas_li">来自: <span class="blog_title"> nicolas_li的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/gefangshuai/article/details/50328451,BlogCommendHotData_23,index_73&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/gefangshuai/article/details/50328451" target="_blank" title="关于SpringBoot bean无法注入的问题(与文件包位置有关)">
<h4 class="text-truncate oneline" style="width: 552px;">
关于SpringBoot bean无法注入的问题(与文件包位置有关) </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">12-16</span>
<span class="read-num hover-hide">
阅读数
11万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/gefangshuai/article/details/50328451" target="_blank" title="关于SpringBoot bean无法注入的问题(与文件包位置有关)">
<span class="desc oneline">问题场景描述整个项目通过Maven构建,大致结构如下:
核心Spring框架一个module spring-boot-base
service和dao一个module server-core
提供系统...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/gefangshuai">来自: <span class="blog_title"> 开发随笔</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box recommend-box-ident type_blog clearfix" data-track-click="{&quot;mod&quot;:&quot;popu_387&quot;,&quot;con&quot;:&quot;,https://blog.csdn.net/VBcom/article/details/7245186,BlogCommendHotData_24,index_74&quot;}" data-flg="true">
<div class="content" style="width: 712px;">
<a href="https://blog.csdn.net/VBcom/article/details/7245186" target="_blank" title="DirectX修复工具增强版">
<h4 class="text-truncate oneline" style="width: 552px;">
DirectX修复工具增强版 </h4>
<div class="info-box d-flex align-content-center">
<p class="date-and-readNum oneline">
<span class="date hover-show">02-09</span>
<span class="read-num hover-hide">
阅读数
184万+</span>
</p>
</div>
</a>
<p class="content" style="width: 712px;">
<a href="https://blog.csdn.net/VBcom/article/details/7245186" target="_blank" title="DirectX修复工具增强版">
<span class="desc oneline">最后更新:2018-12-20
DirectX修复工具最新版:DirectX Repair V3.8 增强版&nbsp;&nbsp;NEW!
版本号:V3.8.0.11638
大小: 107MB/7z格式压缩,18...</span>
</a>
<span class="blog_title_box oneline ">
<span class="type-show type-show-blog type-show-after">博文</span>
<a target="_blank" href="https://blog.csdn.net/VBcom">来自: <span class="blog_title"> VBcom的专栏</span></a>
</span>
</p>
</div>
</div>
<div class="recommend-item-box type_hot_word">
<div class="content clearfix" style="width: 712px;">
<div class="word float-left">
<span>
<a href="https://edu.csdn.net/course/play/6449/128311" target="_blank">
建立部落币 </a></span>
<span>
<a href="https://edu.csdn.net/course/play/6449/128310" target="_blank">
建立简易加密币 </a></span>
<span>
<a href="https://edu.csdn.net/course/play/6449/128312" target="_blank">
以太坊私网建立部署 </a></span>
<span>
<a href="https://edu.csdn.net/courses/o5329_s5330_k" target="_blank">
机器学习 </a></span>
<span>
<a href="https://edu.csdn.net/courses/o5329_s5330_k" target="_blank">
机器学习课程 </a></span>
</div>
</div>
<div class="content clearfix" style="width: 712px;">
<div class="float-left">
<span>
<a href="https://www.csdn.net/gather_21/MtTakg5sMDM3Ny1ibG9n.html" target="_blank">
android应用程序启动过程源代码分析</a>
</span>
<span>
<a href="https://www.csdn.net/gather_2a/MtzaQgzsNTMtYmxvZwO0O0OO0O0O.html" target="_blank">
c++ librtmp 封装</a>
</span>
<span>
<a href="https://www.csdn.net/gather_2a/MtTaEg1sOTMwLWJsb2cO0O0O.html" target="_blank">
c++检查 网络连接</a>
</span>
<span>
<a href="https://www.csdn.net/gather_29/OtDaEg2sMy1ibG9n.html" target="_blank">
c# 获取网络连接</a>
</span>
<span>
<a href="https://www.csdn.net/gather_2c/MtjaEg2sNDYtYmxvZwO0O0OO0O0O.html" target="_blank">
c# 检测网络连接禁用</a>
</span>
<span>
<a href="https://www.csdn.net/gather_4a/NtDakg0sNS1lZHUO0O0O.html" target="_blank">
python基础班5</a>
</span>
<span>
<a href="https://www.csdn.net/gather_4a/OtTaQg3sMy1lZHUO0O0O.html" target="_blank">
人工智能课程体系的建立</a>
</span>
</div>
</div>
</div>
<div class="recommend-loading-box">
<img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/feedLoading.gif">
</div>
<div class="recommend-end-box">
<p class="text-center">没有更多推荐了,<a href="https://blog.csdn.net/" class="c-blue c-blue-hover c-blue-focus">返回首页</a></p>
</div>
</div>
</main>
<aside style="position: fixed; bottom: 0px; z-index: 99; left: 68.6167px; width: 300px; top: auto;">
<div id="asideProfile" class="aside-box">
<!-- <h3 class="aside-title">个人资料</h3> -->
<div class="profile-intro d-flex">
<div class="avatar-box d-flex justify-content-center flex-column">
<a href="https://blog.csdn.net/wongainia158158">
<img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_wongainia158158.gif" class="avatar_pic">
</a>
</div>
<div class="user-info d-flex justify-content-center flex-column">
<p class="name csdn-tracking-statistics tracking-click" data-mod="popu_379">
<a href="https://blog.csdn.net/wongainia158158" target="_blank" class="" id="uid">wongainia158158</a>
</p>
</div>
<div class="opt-box d-flex justify-content-center flex-column">
<span class="csdn-tracking-statistics tracking-click" data-mod="popu_379">
<a class="btn btn-sm btn-red-hollow attention" id="btnAttent" target="_blank">关注</a>
</span>
</div>
</div>
<div class="data-info d-flex item-tiling">
<dl class="text-center" title="24">
<dt><a href="https://blog.csdn.net/wongainia158158?t=1">原创</a></dt>
<dd><a href="https://blog.csdn.net/wongainia158158?t=1"><span class="count">24</span></a></dd>
</dl>
<dl class="text-center" id="fanBox" title="3">
<dt>粉丝</dt>
<dd><span class="count" id="fan">3</span></dd>
</dl>
<dl class="text-center" title="0">
<dt>喜欢</dt>
<dd><span class="count">0</span></dd>
</dl>
<dl class="text-center" title="0">
<dt>评论</dt>
<dd><span class="count">0</span></dd>
</dl>
</div>
<div class="grade-box clearfix">
<dl>
<dt>等级:</dt>
<dd>
<a href="https://blog.csdn.net/home/help.html#level" title="2级,点击查看等级说明" target="_blank">
<svg class="icon icon-level" aria-hidden="true">
<use xlink:href="#csdnc-bloglevel-2"></use>
</svg>
</a>
</dd>
</dl>
<dl>
<dt>访问:</dt>
<dd title="16505">
1万+ </dd>
</dl>
<dl>
<dt>积分:</dt>
<dd title="430">
430 </dd>
</dl>
<dl title="145284">
<dt>排名:</dt>
<dd>14万+</dd>
</dl>
</div>
<div class="badge-box d-flex">
<span>勋章:</span>
<div class="icon-badge" title="持之以恒">
<div class="mouse-box">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-m-lasting"></use>
</svg>
<div class="icon-arrow"></div>
</div>
<div class="grade-detail-box">
<div class="pos-box">
<div class="left-box d-flex justify-content-center align-items-center flex-column">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-m-lasting"></use>
</svg>
<p>持之以恒</p>
</div>
<div class="right-box d-flex justify-content-center align-items-center">
授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
</div>
</div>
</div>
</div>
<script>
(function ($) {
setTimeout(function(){
$('div.icon-badge.show-moment').removeClass('show-moment');
}, 5000);
})(window.jQuery)
</script>
</div>
</div>
<div class="csdn-tracking-statistics mb8 box-shadow" data-pid="blog" data-mod="popu_4" style="height:250px;">
<div class="aside-content text-center" id="cpro_u2734133">
<div id="kp_box_56" data-pid="56" data-track-click="{&quot;mod&quot;:&quot;kp_popu_56-76&quot;,&quot;con&quot;:&quot;,,&quot;}"><script type="text/javascript">
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div style="" id="' + s + '"></div>');
(window.slotbydup = window.slotbydup || []).push({
id: "u3032528",
container: s
});
})();
</script><div style="" id="_xmz1p1r69kf"><iframe id="iframeu3032528_0" name="iframeu3032528_0" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/ecvm.htm" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:300px;height:250px" allowtransparency="true" width="300" height="250" frameborder="0" align="center,center"></iframe></div>
<!-- 多条广告如下脚本只需引入一次 -->
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/c.js" async="async" defer="defer"></script></div> </div>
</div>
<div id="asideNewArticle" class="aside-box">
<h3 class="aside-title">最新文章</h3>
<div class="aside-content">
<ul class="inf_list clearfix csdn-tracking-statistics tracking-click" data-mod="popu_382">
<li class="clearfix">
<a href="https://blog.csdn.net/wongainia158158/article/details/85222553" target="_blank">React Native性能优化总结</a>
</li>
<li class="clearfix">
<a href="https://blog.csdn.net/wongainia158158/article/details/49867383" target="_blank">Android 侧滑菜单</a>
</li>
<li class="clearfix">
<a href="https://blog.csdn.net/wongainia158158/article/details/49801879" target="_blank">xmpp学习</a>
</li>
<li class="clearfix">
<a href="https://blog.csdn.net/wongainia158158/article/details/49801665" target="_blank">xmpp</a>
</li>
<li class="clearfix">
<a href="https://blog.csdn.net/wongainia158158/article/details/49800473" target="_blank">解析Lua中关于Metatable学习笔记</a>
</li>
</ul>
</div>
</div>
<div id="asideArchive" class="aside-box flexible-box">
<h3 class="aside-title">归档</h3>
<div class="aside-content">
<ul class="archive-list">
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2018/12">
2018年12月 <span class="count float-right">1篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/11">
2015年11月 <span class="count float-right">4篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/10">
2015年10月 <span class="count float-right">2篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/09">
2015年9月 <span class="count float-right">18篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/08">
2015年8月 <span class="count float-right">1篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/07">
2015年7月 <span class="count float-right">10篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/06">
2015年6月 <span class="count float-right">9篇</span>
</a>
</li>
<!--归档统计-->
<li>
<a href="https://blog.csdn.net/wongainia158158/article/month/2015/05">
2015年5月 <span class="count float-right">2篇</span>
</a>
</li>
</ul>
</div>
<p class="text-center">
<a class="btn btn-link-blue flexible-btn" data-fbox="aside-archive">展开</a>
</p>
</div>
<div id="asideHotArticle" class="aside-box">
<h3 class="aside-title">热门文章</h3>
<div class="aside-content">
<ul class="hotArticle-list csdn-tracking-statistics tracking-click" data-mod="popu_521">
<li>
<a href="https://blog.csdn.net/wongainia158158/article/details/48375201" target="_blank">android抓包工具fiddler使用介绍 抓取 手机APP 中资源。</a>
<p class="read">阅读数 <span>799</span></p>
</li>
<li>
<a href="https://blog.csdn.net/wongainia158158/article/details/46332121" target="_blank">Android 轻松实现仿QQ空间下拉刷新</a>
<p class="read">阅读数 <span>717</span></p>
</li>
<li>
<a href="https://blog.csdn.net/wongainia158158/article/details/48626907" target="_blank">LibRTMP源代码分析6</a>
<p class="read">阅读数 <span>641</span></p>
</li>
<li>
<a href="https://blog.csdn.net/wongainia158158/article/details/48625871" target="_blank">LibRTMP源代码分析5:建立网络连接</a>
<p class="read">阅读数 <span>632</span></p>
</li>
<li>
<a href="https://blog.csdn.net/wongainia158158/article/details/48345201" target="_blank">日期滚动栏的实现</a>
<p class="read">阅读数 <span>510</span></p>
</li>
</ul>
</div>
</div>
<div id="asideFooter">
<div class="aside-box">
<div id="kp_box_57" data-pid="57" data-track-click="{&quot;mod&quot;:&quot;kp_popu_57-77&quot;,&quot;con&quot;:&quot;,,&quot;}"><script type="text/javascript">
(function() {
var s = "_" + Math.random().toString(36).slice(2);
document.write('<div style="" id="' + s + '"></div>');
(window.slotbydup = window.slotbydup || []).push({
id: "u3163270",
container: s
});
})();
</script><div style="" id="_07bqlbl8yk9r"><iframe id="iframeu3163270_0" name="iframeu3163270_0" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/ecvm_002.htm" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:300px;height:250px" allowtransparency="true" width="300" height="250" frameborder="0" align="center,center"></iframe></div>
<!-- 多条广告如下脚本只需引入一次 -->
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/c.js" async="async" defer="defer"></script></div> </div>
<div class="aside-box">
<div class="persion_article">
<div class="right_box footer_box csdn-tracking-statistics" data-mod="popu_475" data-dsm="post"> <div class="contact-box" id="footer-contact-box"><div class="img-box"><a href="https://bbs.csdn.net/forums/Service?utm_source=csdn_footer" target="_blank"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/csdn_cs_qr.png" alt="微信客服" style="padding: 6px;"></a><p class="app-text">微信客服</p></div><div class="img-box fr"><a href="http://wpa.b.qq.com/cgi/wpa.php?ln=1&amp;key=XzgwMDE4MDEwNl80ODc3MzVfODAwMTgwMTA2XzJf" target="_blank"><img style="padding:6px;" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/csdn-kf.png" alt="QQ客服"></a><p class="app-text">QQ客服</p></div></div> <div class="contact-info"> <p><svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M2.167 2h11.666C14.478 2 15 2.576 15 3.286v9.428c0 .71-.522 1.286-1.167 1.286H2.167C1.522 14 1 13.424 1 12.714V3.286C1 2.576 1.522 2 2.167 2zm-.164 3v1L8 10l6-4V5L8 9 2.003 5z" fill="#5c5c5c" fill-rule="evenodd"></path></svg><a href="mailto:webmaster@csdn.net" target="_blank"><span class="txt">kefu@csdn.net</span></a> <em class="width126"><svg t="1538013544186" width="17" height="17" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="23556" xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M902.60033922 650.96445566c-18.0718526-100.84369837-94.08399771-166.87723736-94.08399771-166.87723737 10.87530062-91.53186599-28.94715402-107.78733693-28.94715401-107.78733691C771.20003413 93.08221664 517.34798062 98.02553561 511.98620441 98.16348824 506.65661791 98.02553561 252.75857992 93.08221664 244.43541101 376.29988138c0 0-39.79946279 16.25547094-28.947154 107.78733691 0 0-75.98915247 66.03353901-94.0839977 166.87723737 0 0-9.63372291 170.35365477 86.84146124 20.85850523 0 0 21.70461757 56.79068296 61.50407954 107.78733692 0 0-71.1607951 23.19910867-65.11385185 83.46161052 0 0-2.43717093 67.16015592 151.93232126 62.56172014 0 0 108.5460788-8.0932473 141.10300432-52.14626271H526.33792324c32.57991817 44.05301539 141.10300431 52.1462627 141.10300431 52.14626271 154.3235077 4.59843579 151.95071457-62.56172013 151.95071457-62.56172014 6.00095876-60.26250183-65.11385185-83.46161053-65.11385185-83.46161052 39.77647014-50.99665395 61.4810877-107.78733693 61.4810877-107.78733692 96.45219231 149.49514952 86.84146124-20.85850523 86.84146125-20.85850523" p-id="23557" fill="#5c5c5c"></path></svg><a href="http://wpa.b.qq.com/cgi/wpa.php?ln=1&amp;key=XzgwMDE4MDEwNl80ODc3MzVfODAwMTgwMTA2XzJf" class="qqcustomer_s" target="_blank"><span class="txt">QQ客服</span></a></em></p> <p><em class="width126"><svg t="1538012951761" width="17" height="17" style="" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="23083" xlink="http://www.w3.org/1999/xlink"><defs><style type="text/css"></style></defs><path d="M466.4934485 880.02006511C264.6019863 859.18313878 107.13744214 688.54706608 107.13744214 481.14947309 107.13744214 259.68965394 286.68049114 80.14660493 508.14031029 80.14660493s401.00286817 179.54304901 401.00286814 401.00286816v1.67343191C908.30646249 737.58941724 715.26799489 943.85339507 477.28978337 943.85339507c-31.71423369 0-62.61874229-3.67075386-92.38963569-10.60739903 30.09478346-11.01226158 56.84270313-29.63593923 81.5933008-53.22593095z m-205.13036267-398.87059202a246.77722444 246.77722444 0 0 0 493.5544489 0 30.85052691 30.85052691 0 0 0-61.70105383 0 185.07617062 185.07617062 0 0 1-370.15234125 0 30.85052691 30.85052691 0 0 0-61.70105382 0z" p-id="23084" fill="#5c5c5c"></path></svg><a href="http://bbs.csdn.net/forums/Service" target="_blank"><span class="txt">客服论坛</span></a></em> <svg t="153
</div>
</div>
</aside>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/publib_footer-1.js" data-isfootertrack="false" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/pub_footer_1.css">
<script>
$("a.flexible-btn").click(function(){
$(this).parents('div.aside-box').removeClass('flexible-box');
$(this).remove();
})
</script>
</div>
<div class="mask-dark"></div>
<div id="loginWrap" style="display:none"></div>
<div class="tool-box" style="right: 23.3833px; display: block; top: 40px;">
<ul class="meau-list">
<li class="btn-like-box ">
<button class=" low-height hover-box btn-like " title="点赞">
<svg class="icon active hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-thumbsup-ok"></use>
</svg>
<svg class="icon no-active hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-thumbsup"></use>
</svg>
<span class="hover-show text-box text">
<span class="no-active">点赞</span>
<span class="active">取消点赞</span>
</span>
<p>0</p>
</button>
</li>
<li class="">
<a class="btn-comments low-height hover-box" title="写评论" href="#commentBox">
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-comments"></use>
</svg>
<span class="hover-show text">评论</span>
<p class="">
</p>
</a>
</li>
<li>
<button class="btn-bookmark low-height hover-box" title="收藏">
<svg class="icon active hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-bookmark-ok"></use>
</svg>
<svg class="icon no-active hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-bookmark"></use>
</svg>
<span class="hover-show text">收藏</span>
<!-- <span class="hover-show text-box text">
<span class="no-active">收藏</span>
<span class="active">取消收藏</span>
</span> -->
</button>
</li>
<li class="bdsharebuttonbox bdshare-button-style0-16" data-bd-bind="1551767902989">
<div class="weixin-qr btn-comments low-height hover-box">
<a href="#" class="bds_weixin clear-share-style" data-cmd="weixin" title="手机看"></a>
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-usephone"></use>
</svg>
<span class="hover-show text text3">
手机看
</span>
</div>
</li>
<li class="widescreen-hide">
<a class="btn-comments low-height hover-box" href="https://blog.csdn.net/wongainia158158/article/details/48625123" title="LibRTMP源代码分析2">
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-chevronleft"></use>
</svg>
<span class="hover-show text text3">上一篇</span>
</a>
</li>
<li class="widescreen-hide">
<a class="btn-comments hover-box low-height" href="https://blog.csdn.net/wongainia158158/article/details/48626615" title="LibRTMP源代码分析6:建立网络流">
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-chevronright"></use>
</svg>
<span class="hover-show text text3">下一篇</span>
</a>
</li>
<!-- 宽屏更多按钮 -->
<li class="widescreen-more">
<a class="btn-comments chat-ask-button low-height hover-box" title="快问" href="#chatqa">
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-more"></use>
</svg>
<span class="hover-show text">更多</span>
</a>
<ul class="widescreen-more-box">
<li class="widescreen-more">
<a class="btn-comments low-height hover-box" href="https://blog.csdn.net/wongainia158158/article/details/48625123" title="LibRTMP源代码分析2">
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-chevronleft"></use>
</svg>
<span class="hover-show text text3">上一篇</span>
</a>
</li>
<li class="widescreen-more">
<a class="btn-comments hover-box low-height" href="https://blog.csdn.net/wongainia158158/article/details/48626615" title="LibRTMP源代码分析6:建立网络流">
<svg class="icon hover-hide" aria-hidden="true">
<use xlink:href="#csdnc-chevronright"></use>
</svg>
<span class="hover-show text text3">下一篇</span>
</a>
</li>
</ul>
</li>
</ul>
</div>
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'https://csdnimg.cn/static/api/js/share.js?v=89860594'];</script>
<script>
var recommendCount = 75;
recommendCount = recommendCount > 1 ? (recommendCount + (recommendCount>6 ? 2 : 1)) : recommendCount;
var articleTit = articleTitles;
var ChannelId = 1;
var articleId = "48625871";
var commentscount = 0;
var islock = false;
var curentUrl = "https://blog.csdn.net/wongainia158158/article/details/48625871";
var myUrl = "https://my.csdn.net/";
//1禁止评论,2正常
var commentAuth = 2;
//百度搜索
var baiduKey = "LibRTMP源代码分析5:建立网络连接 - wongainia158158的博客";
var needInsertBaidu = true;
// 代码段样式
var codeStyle = '';
var highlight = ["librtmp","\u6e90\u4ee3\u7801\u5206\u6790","\u5efa\u7acb","\u7f51\u7edc\u8fde\u63a5"];//高亮数组
// 相关推荐博主数据
var RecommendBlogExpertList = [{"user_name":"byxdaz","nick_name":"byxdaz","avatar":"https:\/\/avatar.csdn.net\/5\/7\/D\/3_byxdaz.jpg","is_expert":true,"article_count":950,"rank":"86"},{"user_name":"wongainia158158","nick_name":"wongainia158158","avatar":"https:\/\/avatar.csdn.net\/8\/D\/C\/3_wongainia158158.jpg","is_expert":false,"article_count":47,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"huangmindong","nick_name":"huangmindong","avatar":"https:\/\/avatar.csdn.net\/D\/C\/F\/3_huangmindong.jpg","is_expert":false,"article_count":298,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"hffgjh","nick_name":"\u6bd4\u8f83\u6e05\u7eaf","avatar":"https:\/\/avatar.csdn.net\/A\/0\/7\/3_hffgjh.jpg","is_expert":false,"article_count":255,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"leixiaohua1020","nick_name":"\u96f7\u9704\u9a85","avatar":"https:\/\/avatar.csdn.net\/A\/7\/6\/3_leixiaohua1020.jpg","is_expert":true,"article_count":558,"rank":"50"},{"user_name":"qinglongzhan","nick_name":"\u9752\u9f99\u6218","avatar":"https:\/\/avatar.csdn.net\/A\/C\/7\/3_qinglongzhan.jpg","is_expert":false,"article_count":69,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"fireroll","nick_name":"\u5317\u96e8\u5357\u840d","avatar":"https:\/\/avatar.csdn.net\/1\/3\/0\/3_fireroll.jpg","is_expert":false,"article_count":719,"rank":"765"},{"user_name":"tongjing524","nick_name":"tongjing524","avatar":"https:\/\/avatar.csdn.net\/6\/A\/0\/3_tongjing524.jpg","is_expert":false,"article_count":31,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"u010380485","nick_name":"\u963f\u5c0f\u6b65","avatar":"https:\/\/avatar.csdn.net\/3\/B\/9\/3_u010380485.jpg","is_expert":false,"article_count":8,"rank":"\u5343\u91cc\u4e4b\u5916"},{"user_name":"zmy3376365","nick_name":"Derek_0101","avatar":"https:\/\/avatar.csdn.net\/6\/0\/1\/3_zmy3376365.jpg","is_expert":false,"article_count":70,"rank":"\u5343\u91cc\u4e4b\u5916"}];
var articleType = 1;
var CopyrightContent = '';
</script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/sandalstrap.js"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/paging.js"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/goTop-v1.js"></script>
<script>
GoTop({
right: 8,
hasReport: true,
reportFun: function() {
showReport(false,articleTit);
}
})
</script><div class="meau-gotop-box" style="right: 8px; bottom: 40px; z-index: 110; left: 1137.85px;"><a href="https://mall.csdn.net/vip_code" id="adContent" class="btn-meau"> </a> <a href="#" id="backtop" class="btn-meau" title="返回顶部" style="display: flex;"> <svg xmlns="http://www.w3.org/2000/svg" width="19" height="12"> <path d="M9.314 0l9.313 9.314-2.12 2.121-7.193-7.192-7.193 7.192L0 9.314z" fill="#FFF" fill-rule="evenodd"></path> </svg> </a> <a href="#" id="reportContent" class="btn-meau" title="举报"> <svg xmlns="http://www.w3.org/2000/svg" width="18" height="22"><path d="M0 13.028V3.365L9 0l9 3.365v9.663C18 17.983 13.97 22 9 22s-9-4.017-9-8.972zm2-8.282v8.282c0 3.854 3.134 6.978 7 6.978s7-3.124 7-6.978V4.746L9 2.13 2 4.746zm6 10.276h2v1.993H8v-1.993zm0-8.973h2v6.979H8V6.049z" fill="#FFF" fill-rule="nonzero"></path></svg> </a></div>
<div class="fourth_column">
<div class="title-box">
<b class="title">猿学习</b>
<span class="fourth_column_close">
<svg class="icon" aria-hidden="true">
<use xlink:href="#csdnc-times"></use>
</svg>
</span>
</div>
<ul class="">
<li><div id="kp_box_456" data-pid="456" data-track-click="{&quot;mod&quot;:&quot;kp_popu_456-802&quot;,&quot;con&quot;:&quot;,,&quot;}"><a href="https://edu.csdn.net/topic/python115?utm_source=blogright" target="_blank"> <div class="blogkp1"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/201901081438577084.png" width="100" height="100"><h6>程序员2019年学Python</h6></div></a></div></li> <li><div id="kp_box_457" data-pid="457" data-track-click="{&quot;mod&quot;:&quot;kp_popu_457-681&quot;,&quot;con&quot;:&quot;,,&quot;}"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/201901081453403307.jpg" width="100" height="100"></div></li> <li><div id="kp_box_458" data-pid="458" data-track-click="{&quot;mod&quot;:&quot;kp_popu_458-640&quot;,&quot;con&quot;:&quot;,,&quot;}"><a href="https://gitchat.csdn.net/column/5a7d1a13a7f22b3dffca7e49?utm_source=csdn100" target="_blank"><div class="blogkp3"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/201811091452349556.png" width="100" height="100"><h6>Python 爬虫和数据分析实战</h6><span style="position:absolute;right:0;bottom:0;background:url(https://img-ads.csdn.net/2016/201608021757063065.png) no-repeat;width:33px;height:18px;display:block;z-index: 9999;"></span></div></a></div></li> <li><div id="kp_box_459" data-pid="459" data-track-click="{&quot;mod&quot;:&quot;kp_popu_459-684&quot;,&quot;con&quot;:&quot;,,&quot;}"><img src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/201811231419286183.jpg" width="100" height="100"></div></li> </ul>
</div>
<script type="text/javascript">
$('.fourth_column_close').click(function(){
$('.fourth_column').remove();
})
</script>
<!-- 右侧第四栏end -->
<!-- 高亮未与 markdown兼容 -->
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/chart.css">
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/chart.js"></script>
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/widget2chart.js"></script>
<link rel="stylesheet" href="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/atom-one-light.css">
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/pc_wap_common-98040b5dc6.js"></script>
<script type="text/javascript">
$(function(){
var allEscRegex = /&(lt|gt|amp|quot|nbsp|shy|#\d{1,5});/g,
namedEntities = {
lt: '<',
gt: '>',
amp: '&',
quot: '"',
nbsp: '\u00a0',
shy: '\u00ad'
}
var allEscDecode = function( match, code ) {
return namedEntities[ code ];
};
htmlDecodeAttr = function( text ) {
return text.replace( allEscRegex, allEscDecode );
}
hljs.initHighlighting();
hljs.initCopyButtonOnLoad();
hljs.initLineNumbersOnLoad();
if($('pre .language-plain').length>0){
$('pre .language-plain').each(function(i,e){
var highlightRe = hljs.highlightAuto(htmlDecodeAttr(e.innerHTML))
e.innerHTML = highlightRe.value;
e.className = 'language-'+highlightRe.language;
});
}
})
</script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/a"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/common-eb024b1a9c.js"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/detail-001720469e.js"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/baidu-search.js" type="text/javascript"></script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/skin3-template-fc7383b956.js"></script>
<!-- <script type="text/javascript" src="//g.csdnimg.cn/check-adb/1.0.2/check-adb.js"></script> -->
<script type="text/javascript" src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/MathJax.js"></script>
<script type="text/x-mathjax-config;executed=true">
MathJax.Hub.Config({
"HTML-CSS": {
linebreaks: { automatic: true, width: "94%container" },
imageFont: null
},
tex2jax: {
preview: "none"
},
mml2jax: {
preview: 'none'
}
});
</script>
<script type="text/javascript">
window.baidu_blueword ={
di:'24004469_oem_dg',
id:['content_views'],// 需要飘蓝区域:id要求以数组或,分隔的字符串形式传入
blueclass:['baidu_pl'],// 需要飘蓝区域:class要求以数组或,分隔的字符串形式传入, 传入值会覆盖默认值
user:'',
isMobile:false,
title: document.title,
page_url: location.href,
ignore:'baidu-blue-word-no',// 需要忽略掉的区域1
frequency:1,// 词频1
maxword:3// 最大接受飘词个数
}
</script>
<script src="LibRTMP%E6%BA%90%E4%BB%A3%E7%A0%81%E5%88%86%E6%9E%905%EF%BC%9A%E5%BB%BA%E7%AB%8B%E7%BD%91%E7%BB%9C%E8%BF%9E%E6%8E%A5%20-%20wongainia158158%E7%9A%84%E5%8D%9A%E5%AE%A2%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/bword.js"></script>
<div style="position:fixed; top:0; left:0; overflow:hidden;"><input style="position:absolute; left:-300px;" type="text" id="focus_retriever" readonly="true"></div><div id="pointDivs"><div class="point-outer point-pre"><div class="point-inner"></div></div><div class="point-outer point-pre"><div class="point-inner"></div></div><div class="point-outer point-pre"><div class="point-inner"></div></div><div class="point-outer point-pre"><div class="point-inner"></div></div><div class="point-outer point-pre"><div class="point-inner"></div></div></div><div class="report-box"> <div class="pos-box"> <h2 class="title">不良信息举报</h2> <a class="btn-close"> <svg class="icon" aria-hidden="true"> <use xlink:href="#csdnc-times"></use> </svg> </a> <form id="frmReport"> <div class="form-box"> <div class="txt-row-box"> <label class="title" id="reptTit">举报内容:</label> <p class="rpt-title text-truncate">LibRTMP源代码分析5:建立网络连接 - wongainia158158的博客</p> </div> <div class="txt-row-box"> <label class="title">举报原因:</label> <div class="rdo-box"> <label><input type="radio" class="rdo-chk report-type" id="report_sex" name="report_type" value="1">色情</label> <label><input type="radio" class="rdo-chk report-type" id="report_Politics" name="report_type" value="2">政治</label> <label><input type="radio" class="rdo-chk report-type" id="report_copy" name="report_type" value="3">抄袭</label> <label><input type="radio" class="rdo-chk report-type" id="report_ad" name="report_type" value="4">广告</label> <label><input type="radio" class="rdo-chk report-type" id="report_want" name="report_type" value="5">侵权</label> <label><input type="radio" class="rdo-chk report-type" id="report_call" name="report_type" value="6">骂人</label> <label><input type="radio" class="rdo-chk report-type" id="report_other" name="report_type" value="7">其他</label> </div> </div> <div class="txt-row-box" id="rptOriginalurl"> <label class="title">原文地址:</label> <div class="txt-box"> <input class="ipt" type="text" id="originalurl" name="originalurl"> </div> </div> <div class="txt-row-box"> <label class="title">原因补充:</label> <div class="txt-box"> <textarea class="ipt ipt-textarea" name="description" maxlength="30"></textarea> <p class="remark">最多只允许输入30个字</p> </div> </div> </div> <div class="opt-box text-right"> <input type="reset" class="btn btn-link-gray btn-close" value="取消"> <input type="submit" class="btn btn-red btn-submit" value="提交"> </div> </form> </div> </div><div class="imgViewDom disnone" style="display: none;"><img src=""></div><style>.imgViewDom{display:none;position:fixed;top:0;left:0;height:100%;width:100%;z-index:99999999;background: rgba(255, 255, 255,0.8);overflow: auto;display:-webkit-box;-webkit-box-align:center;-webkit-box-pack:center;display:-moz-box;-moz-box-align:center;-moz-box-pack:center;display:-o-box;-o-box-align:center;-o-box-pack:center;display:-ms-box;-ms-box-align:center;-ms-box-pack:center; display:box;box-align:center;box-pack:center;}.imgViewDom img{cursor: zoom-out;}</style><iframe class="bdSug_sd" style="display: none; position: absolute; border-width: 0px;"></iframe><div id="bdSug_1551767902780" class="bdSug_wpr" style="display: none;"></div></body><!-- 右侧第四栏 --></html>