路由吧!
成都創(chuàng)新互聯(lián),專注為中小企業(yè)提供官網(wǎng)建設(shè)、營銷型網(wǎng)站制作、響應(yīng)式網(wǎng)站開發(fā)、展示型成都做網(wǎng)站、成都網(wǎng)站設(shè)計等服務(wù),幫助中小企業(yè)通過網(wǎng)站體現(xiàn)價值、有效益。幫助企業(yè)快速建站、解決網(wǎng)站建設(shè)與網(wǎng)站營銷推廣問題。
要解釋路由器的概念,首先得知道什么是路由。所謂“路由”,是指把數(shù)據(jù)從一個地方傳送到另一個地方的行為和動作,而路由器,正是執(zhí)行這種行為動作的機器,它的英文名稱為Router,是一種連接多個網(wǎng)絡(luò)或網(wǎng)段的網(wǎng)絡(luò)設(shè)備,它能將不同網(wǎng)絡(luò)或網(wǎng)段之間的數(shù)據(jù)信息進行“翻譯”,以使它們能夠相互“讀懂”對方的數(shù)據(jù),從而構(gòu)成一個更大的網(wǎng)絡(luò)。 ;ID=89834
簡單的講,路由器主要有以下幾種功能:
第一,網(wǎng)絡(luò)互連,路由器支持各種局域網(wǎng)和廣域網(wǎng)接口,主要用于互連局域網(wǎng)和廣域網(wǎng),實現(xiàn)不同網(wǎng)絡(luò)互相通信;
第二,數(shù)據(jù)處理,提供包括分組過濾、分組轉(zhuǎn)發(fā)、優(yōu)先級、復(fù)用、加密、壓縮和防火墻等功能;
第三,網(wǎng)絡(luò)管理,路由器提供包括配置管理、性能管理、容錯管理和流量控制等功能。
為了完成“路由”的工作,在路由器中保存著各種傳輸路徑的相關(guān)數(shù)據(jù)--路由表(Routing Table),供路由選擇時使用。路由表中保存著子網(wǎng)的標(biāo)志信息、網(wǎng)上路由器的個數(shù)和下一個路由器的名字等內(nèi)容。路由表可以是由系統(tǒng)管理員固定設(shè)置好的,也可以由系統(tǒng)動態(tài)修改,可以由路由器自動調(diào)整,也可以由主機控制。在路由器中涉及到兩個有關(guān)地址的名字概念,那就是:靜態(tài)路由表和動態(tài)路由表。由系統(tǒng)管理員事先設(shè)置好固定的路由表稱之為靜態(tài)(static)路由表,一般是在系統(tǒng)安裝時就根據(jù)網(wǎng)絡(luò)的配置情況預(yù)先設(shè)定的,它不會隨未來網(wǎng)絡(luò)結(jié)構(gòu)的改變而改變。動態(tài)(Dynamic)路由表是路由器根據(jù)網(wǎng)絡(luò)系統(tǒng)的運行情況而自動調(diào)整的路由表。路由器根據(jù)路由選擇協(xié)議(Routing Protocol)提供的功能,自動學(xué)習(xí)和記憶網(wǎng)絡(luò)運行情況,在需要時自動計算數(shù)據(jù)傳輸?shù)淖罴崖窂健?/p>
為了簡單地說明路由器的工作原理,現(xiàn)在我們假設(shè)有這樣一個簡單的網(wǎng)絡(luò)。
現(xiàn)在我們來看一下在如圖所示網(wǎng)絡(luò)環(huán)境下路由器又是如何發(fā)揮其路由、數(shù)據(jù)轉(zhuǎn)發(fā)作用的?,F(xiàn)假設(shè)網(wǎng)絡(luò)A中一個用戶A1要向C網(wǎng)絡(luò)中的C3用戶發(fā)送一個請求信號時,信號傳遞的步驟如下:
第1步:用戶A1將目的用戶C3的地址C3,連同數(shù)據(jù)信息以數(shù)據(jù)幀的形式通過集線器或交換機以廣播的形式發(fā)送給同一網(wǎng)絡(luò)中的所有節(jié)點,當(dāng)路由器A5端口偵聽到這個地址后,分析得知所發(fā)目的節(jié)點不是本網(wǎng)段的,需要路由轉(zhuǎn)發(fā),就把數(shù)據(jù)幀接收下來。
第2步:路由器A5端口接收到用戶A1的數(shù)據(jù)幀后,先從報頭中取出目的用戶C3的IP地址,并根據(jù)路由表計算出發(fā)往用戶C3的最佳路徑。因為從分析得知到C3的網(wǎng)絡(luò)ID號與路由器的C5網(wǎng)絡(luò)ID號相同,所以由路由器的A5端口直接發(fā)向路由器的C5端口應(yīng)是信號傳遞的最佳途經(jīng)。
第3步:路由器的C5端口再次取出目的用戶C3的IP地址,找出C3的IP地址中的主機ID號,如果在網(wǎng)絡(luò)中有交換機則可先發(fā)給交換機,由交換機根據(jù)MAC地址表找出具體的網(wǎng)絡(luò)節(jié)點位置;如果沒有交換機設(shè)備則根據(jù)其IP地址中的主機ID直接把數(shù)據(jù)幀發(fā)送給用戶C3,這樣一個完整的數(shù)據(jù)通信轉(zhuǎn)發(fā)過程也完成了。
從上面可以看出,不管網(wǎng)絡(luò)有多么復(fù)雜,路由器其實所作的工作就是這么幾步,所以整個路由器的工作原理基本都差不多。當(dāng)然在實際的網(wǎng)絡(luò)中還遠(yuǎn)比上圖所示的要復(fù)雜許多,實際的步驟也不會像上述那么簡單,但總的過程是這樣的。
目前,生產(chǎn)路由器的廠商,國外主要有CISCO(思科)公司、北電網(wǎng)絡(luò)等,國內(nèi)廠商包括華為等。
我也不是很懂,但是我對你的問題感興趣所以查了一下,就我所了解的是這樣:
H264文件的主要部分,是一堆"NAL單元"(NALU),NALU的分隔符是0000 0001 或 0000 01
每個NALU的頭部,會有一個字節(jié)來標(biāo)示該NALU的類型
一幀會由一個Access Unit (AU)構(gòu)成,一個AU是由多個連續(xù)的NALU組成。
有一種NALU的類型,代表字節(jié)為09,是AU的結(jié)尾符號。但是這個似乎不是強制的而是建議。如果使用了該標(biāo)識符,每一幀都將由0000 0001 09 或 0000 0109結(jié)尾。
如果不使用該標(biāo)識符,似乎要通過NALU的內(nèi)容判斷兩個NALU是否屬于同一幀。
部分我看的參考資料:
后面兩個英文資料可能要翻墻也可能不要
附件是完整的H264的specification,這是英文的,我沒找到中文的。第八章詳細(xì)的描述了解碼的規(guī)范。
不刷新頁面更新數(shù)據(jù),一般有兩個方法實現(xiàn),都離不開JAVASCRIPT。現(xiàn)在最流行的就是AJAX,是用JS腳本連接數(shù)據(jù)庫更新數(shù)據(jù),刷新頁面部分區(qū)域內(nèi)容,不刷新整個網(wǎng)頁。另外一個是比較經(jīng)典、但是兼容性更高的方法,設(shè)置一個隱藏的FRAME或者iFRAME幀,那個幀不斷刷新PHP頁面,頁面內(nèi)容為改變可見幀內(nèi)容的JS。
完全可以的,php可以操作串口rs232的。
例子如下:
?php
// --------------------------------------------------------------------------
// File name : RS232_Server.php
// Description : RS232演示上位機程序
// Requirement : PHP 5.1.4 (cli) ()
//
// Copyright(C), HonestQiao, 2006, All Rights Reserved.
//
// Author: HonestQiao (honestqiao@hotmail.com/QQ:5601680)
//
// 程序簡介:
// 本程序與RS232_Client構(gòu)成一個完整的演示系統(tǒng),展示了PHP在RS232串口通訊上的應(yīng)用。
// 程序之中實現(xiàn)了一個基礎(chǔ)但是完整的RS232通訊協(xié)議(HQB232),通訊協(xié)議格式如下:
// 協(xié)議內(nèi)容:
// C-S 01 //請求通訊
// S-C 02 //響應(yīng)通訊
// C-S LEN DATA //LEN表示數(shù)據(jù)(DATA)長度 DATA表示實際數(shù)據(jù)
// C-S 03 //結(jié)束通訊
// 說明:S表示上位機 C表示下位機
// HQB232表示HonestQiao演示的基礎(chǔ)(Base)RS232通訊協(xié)議,包含了協(xié)議的
// 請求和響應(yīng),數(shù)據(jù)幀的結(jié)構(gòu)。
// 演示過程為通訊的請求和響應(yīng),十次數(shù)據(jù)幀的發(fā)送, 通訊的結(jié)束
// 數(shù)據(jù)幀的結(jié)構(gòu)為當(dāng)前的序號,microtime(),隨機字符串
//
// 歡迎探討PHP在RS232串口通訊上的應(yīng)用。
// --------------------------------------------------------------------------
set_time_limit(0);
exec('mode COM1: baud=115200 data=8 stop=1 parity=n xon=on');
$fd = dio_open('COM1:', O_RDWR);
if(!$fd)
{
die("Error when open COM1");
}
$ff = dio_stat($fd);print_r($ff);
echo "HQB232 SERVER is listenning on COM1\n";
/// read
$len = 2;
$t=0;while (($t++)1000)
{
$data = dio_read($fd, $len);
if ($data) {
if($data==chr(0).chr(1)){
echo "S_RECV:01\n";
echo "S_SEND:02\n";
dio_write($fd,chr(0).chr(2));
break;
}
}
}
/// read
$len = 2;
$t=0;while (($t++)1000)
{
$len = 2;
$data = dio_read($fd, $len);
if($data==chr(0).chr(3)){
echo "S_RECV:03\n";
break;
}
elseif ($data) {
$len = intval($data);
$data = dio_read($fd, $len);
if($data){
echo "S_RECV:($len)$data\n";
}
}
}
dio_close($fd);
?
PHP弱類型,存放數(shù)據(jù)的話是可以滿足的。
?php?
$x="我是幀頭";
$y=321;
//todo可以對$z進行賦值
$z="我是數(shù)據(jù)balabala~";
$arr=array($x,$y,$z);
echo?"幀頭:".$arr[0]."br/";//輸出幀頭
echo?"長度:".$arr[1]."br/";//輸出長度
echo?"數(shù)據(jù):".$arr[2]."br/";//輸出數(shù)據(jù)
var_dump($arr);//dump出來查看詳細(xì)
?
輸出結(jié)果:
幀頭:我是幀頭
長度:321
數(shù)據(jù):我是數(shù)據(jù)balabala~
array(3) { [0]= string(8) "我是幀頭" [1]= int(321) [2]= string(17) "我是數(shù)據(jù)balabala~" }
不好說,給你轉(zhuǎn)個教程吧。后臺的話還是要JS來調(diào)用。
Flash是可以輕松與網(wǎng)頁交互數(shù)據(jù)的,不然為何Flash會有這么大的生命力呢?只是這樣編程比較麻煩而已,又要調(diào)試Flash,然后又要放到服務(wù)器上調(diào)試。不過這樣的方式能夠收到很好的效果,F(xiàn)lash強大的繪圖功能、圖形功能,能夠與網(wǎng)頁的參數(shù)傳遞聯(lián)系起來,配合后端的服務(wù)器語言,能夠收到很大效果。
下面舉個例子用ActionScript3.0來說明這個問題,如下圖:
IE6效果:
火狐效果:
一旦瀏覽器裝上Flash插件,F(xiàn)lash就能夠輕松與網(wǎng)頁互通消息。無論在任何瀏覽器,現(xiàn)在基本上用戶都會裝上Flash組件的,可以這樣說,幾乎就沒有不裝Flash組件的瀏覽器。
一、Flash部分
1、首先,新建一個ActionScript3.0的Flash,新建之后就保存為webPage.fla,這次的Flash無須這么大的尺寸,否則網(wǎng)頁中會有很多的留白,設(shè)置大小為500x100px就可以了。播放器的版本按照默認(rèn)就可以,因為用戶的瀏覽器Flash組件會自動更新的。這個不用管。
2、通過窗口-組件,或者Ctrl+F7打開組件面板,利用自帶的按鈕、標(biāo)簽文本、輸入框組件布置界面。
3、拖出如下的界面,設(shè)置各個組件的屬性如下,設(shè)置其text值,也就是要顯示的文字,為部分要控制的組件設(shè)置實例名稱,也就是Id,比如按鈕設(shè)置成Button1,輸入框設(shè)置成EditField1,一會兒要給網(wǎng)頁JavaScript控制的標(biāo)簽文本的text值清空,其實例名稱為Label1。
4、之后點擊第一幀,打開動作面板,或者點擊F9,寫入如下的代碼:
[javascript] view plain copy print?
import?flash.external.ExternalInterface;
flash.system.Security.allowDomain("*");
flash.system.Security.allowInsecureDomain("*");//設(shè)置允許所有網(wǎng)站都允許Flash與網(wǎng)頁之間交互
Button1.addEventListener("click",function(){//點擊Button1這個按鈕
ExternalInterface.call("show",EditField1.text);
//則調(diào)用JavaScript中的function?show(message){}函數(shù),其中message這個參數(shù)值,由EditField1輸入的東西填充
});
function?JavaScriptShow1(message1){
//定義一個函數(shù),一旦這個函數(shù)觸發(fā)則把傳來的值,填充Label1這個標(biāo)簽文本
Label1.text=message1;
}
ExternalInterface.addCallback("JavaScriptShow1",JavaScriptShow1);
//注冊JavaScriptShow1這個函數(shù),其對外名稱為JavaScriptShow1,一般都應(yīng)該相同的
//網(wǎng)頁調(diào)用Flash對象的JavaScriptShow1的方法,則相當(dāng)于調(diào)用ActionScript中的JavaScriptShow1(message1){}函數(shù)
import flash.external.ExternalInterface; flash.system.Security.allowDomain("*"); flash.system.Security.allowInsecureDomain("*");//設(shè)置允許所有網(wǎng)站都允許Flash與網(wǎng)頁之間交互 Button1.addEventListener("click",function(){//點擊Button1這個按鈕 ExternalInterface.call("show",EditField1.text); //則調(diào)用JavaScript中的function show(message){}函數(shù),其中message這個參數(shù)值,由EditField1輸入的東西填充 }); function JavaScriptShow1(message1){ //定義一個函數(shù),一旦這個函數(shù)觸發(fā)則把傳來的值,填充Label1這個標(biāo)簽文本 Label1.text=message1; } ExternalInterface.addCallback("JavaScriptShow1",JavaScriptShow1); //注冊JavaScriptShow1這個函數(shù),其對外名稱為JavaScriptShow1,一般都應(yīng)該相同的 //網(wǎng)頁調(diào)用Flash對象的JavaScriptShow1的方法,則相當(dāng)于調(diào)用ActionScript中的JavaScriptShow1(message1){}函數(shù)
5、此時Flash的部分完畢,選擇文件-發(fā)布,打開Flash保存的文件夾。其實上面的內(nèi)容比《【ActionScript】ActionScript3.0的Helloworld》(點擊打開鏈接)沒復(fù)雜多少,只是多了兩句注冊ActionScript與JavaScript的交互的語句而已。
二、網(wǎng)頁的部分
1、之后,要把這個Flash布置到網(wǎng)頁上。Flash發(fā)布之后,會在網(wǎng)頁中生成兩個東西一個html與一個swf,核心文件是.swf文件,html文件不能照搬的,只能借鑒其中的代碼,否則不能兼容野狐禪、谷歌等瀏覽器。
這個由Flash生成webPage.html頁面,可以借鑒的代碼如下:
2、由于Flash禁用了Flash調(diào)用本地文件的功能。你只能把這個webPage.swf拷貝到你的服務(wù)器上調(diào)試。之后在服務(wù)器上新建一個.html的頁面,這里以swf.html與webPage.swf同目錄做例子,如果不同例子請自己設(shè)置好絕對路徑,假設(shè)是swf.html,swf.html的HTML布局如下:
[html] view plain copy print?
!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Strict//EN"?""
html?xmlns=""?lang="zh-CN"?xml:lang="zh-CN"
head
titlewebPage/title
meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8"?/
/head
body
Flash與網(wǎng)頁交互
input?type="text"?id="text1"?/
button?onclick="toFlash()"發(fā)信息給Flash!/button
!--這段代碼的部分可以在發(fā)布出來的html中截取--
div
object?classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"?width="500"?height="100"?id="webPage"?align="middle"!--這里的id是為了flash給IE系列瀏覽器控制--
!--對IE有效的代碼--
param?name="movie"?value="webPage.swf"?/!--為IE瀏覽器指明flash的路徑--
param?name="quality"?value="high"?/
param?name="bgcolor"?value="#ffffff"?/
param?name="play"?value="true"?/
param?name="loop"?value="true"?/
param?name="wmode"?value="window"?/
param?name="scale"?value="showall"?/
param?name="menu"?value="true"?/
param?name="devicefont"?value="false"?/
param?name="salign"?value=""?/
param?name="allowScriptAccess"?value="always"?/!--這里一定要設(shè)置成always,打開Javascript與Actionscript的交互權(quán)限--
!--對野狐禪、谷歌等有效的代碼--
embed?src="webPage.swf"?width="500"?height="100"?id="webPage"/embed!--這里的id是為了flash給野狐禪、谷歌等瀏覽器控制,src的值為野狐禪、谷歌等瀏覽器指明flash的路徑--
/object
/div
/body
/html
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "" html xmlns="" xml:lang="zh-CN" head titlewebPage/title meta http-equiv="Content-Type" content="text/html; charset=utf-8" / /head body Flash與網(wǎng)頁交互 input type="text" id="text1" / button onclick="toFlash()"發(fā)信息給Flash!/button !--這段代碼的部分可以在發(fā)布出來的html中截取-- div object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="100" id="webPage"!--這里的id是為了flash給IE系列瀏覽器控制-- !--對IE有效的代碼-- param name="movie" value="webPage.swf" /!--為IE瀏覽器指明flash的路徑-- param name="quality" value="high" / param name="bgcolor" value="#ffffff" / param name="play" value="true" / param name="loop" value="true" / param name="wmode" value="window" / param name="scale" value="showall" / param name="menu" value="true" / param name="devicefont" value="false" / param name="salign" value="" / param name="allowScriptAccess" value="always" /!--這里一定要設(shè)置成always,打開Javascript與Actionscript的交互權(quán)限-- !--對野狐禪、谷歌等有效的代碼-- embed src="webPage.swf" width="500" height="100" id="webPage"/embed!--這里的id是為了flash給野狐禪、谷歌等瀏覽器控制,src的值為野狐禪、谷歌等瀏覽器指明flash的路徑-- /object /div /body /html
之后的JavaScript布局,是ActionScript與JavaScript交互的核心,代碼如下:
[javascript] view plain copy print?
script?type="text/javascript"
//給ActionScript所調(diào)用的JavaScript函數(shù),message這個參數(shù)被ActionScript傳遞過來的值所填充
function?show(message){
alert(message);
}
//獲取Flash對象的函數(shù),不同的對象有不同的方法。為了兼容,只能這樣寫。
function?getFlash(movieName){
if?(window.document[movieName])?{
window.document[movieName];
}
if?(navigator.appName.indexOf("Microsoft?Internet")?==?-1)?{
if?(document.embeds??document.embeds[movieName])
return?document.embeds[movieName];
}
else?{
return?document.getElementById(movieName);
}
}
//獲取Flash對象
var?flash1?=?getFlash('webPage');
//JavaScript調(diào)用ActionScript中注冊為JavaScriptShow1的函數(shù)
function?toFlash(){
var?text1?=?document.getElementById("text1").value;
flash1.JavaScriptShow1(text1);
}
/script
script type="text/javascript" //給ActionScript所調(diào)用的JavaScript函數(shù),message這個參數(shù)被ActionScript傳遞過來的值所填充 ? ? function show(message){ ? ? ? ? ? ? alert(message); ? ? } ? ? ?//獲取Flash對象的函數(shù),不同的對象有不同的方法。為了兼容,只能這樣寫。 ? ? function getFlash(movieName){ ? ? ? ? if (window.document[movieName]) { ? ? ? ? ? ? window.document[movieName]; ? ? ? ? } ? ? ? ? if (navigator.appName.indexOf("Microsoft Internet") == -1) { ? ? ? ? ? ? if (document.embeds document.embeds[movieName]) ? ? ? ? ? ? ? ? ?return document.embeds[movieName]; ? ? ? ? } ? ? ? ? else { ? ? ? ? ? ? return document.getElementById(movieName); ? ? ? ? } ? ? } ? ? ?//獲取Flash對象 ? ? var flash1 = getFlash('webPage'); ? ? ?//JavaScript調(diào)用ActionScript中注冊為JavaScriptShow1的函數(shù) ? ? function toFlash(){ ? ? ? ? var text1 = document.getElementById("text1").value; ? ? ? ? flash1.JavaScriptShow1(text1); ? ? } /script
三、總結(jié)
綜上所述,webPage.swf與swf.html的交互如下圖:
當(dāng)前文章:php讀取數(shù)據(jù)幀 php讀取文件內(nèi)容的方法和函數(shù)
標(biāo)題路徑:http://muchs.cn/article44/dossche.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、自適應(yīng)網(wǎng)站、標(biāo)簽優(yōu)化、Google、品牌網(wǎng)站建設(shè)、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)