⑴ 如何用c語言實現登陸路由器
你到底想要說什麼呀??
⑵ 請教高手網路動態路由選擇演算法怎麼用C/C++實現啊
網路動態路由要用c++實現,第一要有存儲路由表的結構,可以用鏈表來實現
第二,演算法,動態路徑的選擇,最優路徑演算法。從一個ip到目標ip的最優路徑,可以委託從ip到一個中間ip的最優然肉從中間ip的路由表裡找到中間ip到目的的最優路徑然後結合就ok了
存儲路徑建議用鏈表或向量。
這些數據結構都是現成的,樓主所要知道的就是演算法問題
最優路徑演算法,前輩曾經給出過代碼,可以參考下面
⑶ C語言網路編程
路由器本身不具備數據保存能力。
通常,路由器的功能是埠轉發。在路由器建立埠映射(公網某埠和內網某台電腦的某埠關聯)後,外網電腦才能和內網某電腦進行通信,通信過程中路由器一直負責數據的中轉。但內網電腦一旦關閉連接,路由器是無法單獨收取並保存信息的,它會直接把斷連事件通知給連接的另一端(外網某電腦)。
例如你的情況,如果區域網里是作為伺服器S(監聽方),外網某電腦作為客戶端C(連接方)。
S程序本身監聽埠2014,而C要連接的是路由器在公網的12345埠。
設路由器在公網IP是123.124.125.126,S的內網IP是192.168.1.1。
這時需要對路由器進行手動配置,讓路由器能將公網的12345埠和內網192.168.1.1這台電腦的2014映射關聯。
這時,內網192.168.1.1上的S對2014進行監聽(就用bind然後listen),路由器會反映到公網上,於是在公網看來,就是」電腦「123.124.125.126在對12345進行監聽。
而如果外網連接123.124.125.126:12345(注意冒號),路由器會將這個連接請求轉化成對192.168.1.1:2014(注意冒號)的連接請求,於是S就會收到連接,能用accept接受它。
後面都和區域網編程一樣了。
有問題請繼續追問。
⑷ 怎麼編程實現關閉路由器上的lan口用c語言
路由器的管理,通常是拿一根Console線,插在路由器的Console口上,另一頭插在電腦的串口上,然後使用像Windows的超級終端這樣的程序來配置。路由器會提供一個Shell,以及一系列命令以供使用。
至於編程嘛,如何才能使您編譯後的C語言程序在路由器中運行呢?如果路由器沒有提供這種近乎於固件刷新的功能的話,恐怕是無法完成這個操作的。
⑸ 如何自己編程實現路由器功能
有些時候,為了安全或者方便控制、監控網路。家庭路由器又太簡單。企業路由器又太貴。所以裝有WINDOWS SERVER 2003的PC機成了我們的合適選擇。
用做路由器的這台PC一定要是雙網卡或多網卡。一塊網卡連接外部網路。一塊網卡連接內部網路。
首先我們先設置這兩塊網卡:
打開本地連接屬性。
網卡一:
如果是撥號就自動獲取。
如果是固定IP請填寫ISP指定的信息。我這里是固定IP:
IP:192.168.38.89
子網掩碼:255.255.255.0
網關:192.168.38.1
DNS:202.106.0.20
網卡二:
IP:192.168.1.1
子網掩碼:255.255.255.0
網關:空
DNS:空
打開:開始—程序—管理工具—路由和遠程訪問
右鍵點擊「 路由和遠程訪問」--「添加伺服器」
選擇「這台計算機」,點擊確定。
右鍵點擊已添加的伺服器,選擇「配置並啟用路由和遠程訪問」
點擊:「下一步」,並選擇「網路地址轉換(NAT)」
在 試用此公共介面連接到Internet的選項離選擇可以鏈接外網的網卡。如果是ADSL撥號。則需要選擇「創建一個新的到Internet的請求撥號介面」點擊下一步後,選擇:「啟用基本的名稱和地址服務」
點擊「完成」。
客戶端PC可以自動獲取IP地址和DNS.
測試一下,應該可以連接INTERNET了。
另外可以加兩條靜態路由:
依次點擊:「IP路由選擇」—「靜態路由」右鍵點擊:「靜態路由」選擇:「新建靜態路由」
選擇連接外網的網卡:
目標:192.168.1.0
網路掩碼:255.255.255.0
網關:192.168.1.1
點擊:「確定」。
選擇連接內網的網卡:
目標:192.168.38.0
網路掩碼:255.255.255.0
網關:192.168.38.1
點擊:「確定」。
大功搞成。可以用這台路由伺服器實現很多功能。比如用防火牆之類限制BT。流量的監控等等。
⑹ 這是一段c程序,有些疑問請高手指教。
貓?還是路由?還是路由貓?
按你的描述,你所用的是帶路由功能的Modem
2.我至今不會看 貓 路由 路由貓,從表面如何分別出他們?
普通的Modem和帶路由功能的Modem是有區別的。普通的Modem是沒有管理頁面的,而帶路由功能的Modem,則是由「管理頁面的」。通過在「管理頁面」中的設置,可以實現一線多機共享上網,等等。
而「普通」的Modem,若要一線多機共享上網,則需要其他網路設備才可以。
所以,從某種程序來說,帶路由功能的Modem,實際上是一個「加強」的「普通Modem」。但帶路由功能的Modem,並不是太好。屬於那種「雞肋」,食之無味,棄之可惜的東東。
如果可能,建議採用「普通」的Modem,而不要選擇「帶路由功能」的Modem。
3.貓是用來幹嘛的,可不可以只用路由?
Modem,是用來進行信號的「收發」操作的。從電腦這端發生的信號,通過Modem進行轉化,傳到ISP那裡,再通過設備,和Internet中的信息進行交換。
然後,信號再回傳到你的Modem,再一次進行轉化,變成電腦可以識別的信號,從而通過「瀏覽器」顯示在你的顯示器上。
路由器沒有這個功能,所以不行。
路由器只是組建網路的設備,並不是用來上網的。對信號的「調制,解調」過程,只能通過Modem來實現。
4.路由是用來幹嘛的?是上網必需的嗎?
路由器是用來組建區域網的。比如:你現在有多台電腦,想用一根電話線來共享上網。
此時,就需要一個「路由器」來實現。
路由器可以用來連接兩個不同的「網路類型」。比如:Linux網路和Ethernet網路等。
路由器,顧名思議,就是提供數據的「路徑」的。
如果只是單獨的一台電腦,沒有必要使用路由器。如果要組建一個小型區域網,則可以用「路由器」來實現。
5.路由貓又是幹嘛的?是不是上網必須要同時使用路由和貓?(雖然問題重復,不過我還是要順帶問一下)
路由貓,如果僅僅是你的一台電腦,則完全沒有必要使用它的「路由」功能。
不過,路由貓有一個好處就是:直接在「Modem」的管理頁面中進行「撥號」,而不用安裝「電信」,「網通」所提供的「虛擬撥號軟體」。
6.如果真的必須同時擁有路由和貓的功能,為什麼還有很多路由和貓分著用的,直接用路由貓不就行了?當然前提不成立就不用回答了
路由貓,是把「路由」的功能和「Modem」的功能結合在一起了。雖然是結合在一起,但它的「路由功能」太簡單,太普通,只不過是「真正路由器」中的一點點功能。
現在市面上稱得上真正的路由器的要數:3COM,Cisco,華為,IBM,Motorola等。這些公司開發出來的「路由器」,都需要專業人員手工為其進行配置,而不是由一般的人用滑鼠點兩下就可以完成的。
這種路由器,一台路由器,就需要上百萬,甚至上千萬的資金,,, 這不是一個小小的「路由貓」就可以實現的。
所以,現在稍微對網路信賴一點的公司或者個人,甚至網吧用戶,都會選擇「路由器」和「普通的Modem」,而不是「路由貓」。
7.我看到公司的交換機,我想,廠商直接製造一個大的路由,多搞N個口,不就可以代替交換機了嗎?是不是可以這樣開發,只是太浪費?市面上有這種東東嗎?
路由器和交換機,介面越多,背寬也就越大,但這樣就需要集成更多的「模塊」,需要投入大量的資金。而這並不是消費者願意花費承擔的。
網路設備中,由於技術的原因,如果搞一個介面,就需要附帶三個口,也就是一個模塊至少四個口。所以現在的網路設備,都是:4口/8口/16口/24口/48口等等。
8.集線器起到什麼作用?是不是叫HUB?
集線器,也是組建網路的設備,但它的組建會共享區域網的帶寬。
比如:一根帶寬為100M的網線,通過HUB連接另外兩台終端。那麼這兩台終端的帶寬則為:100M / 2 = 50M
一個四口的HUB接在一個100M的網路中,那麼每個介面為:100M / 4 = 25M
所以組網,一般都不會選擇它,因為帶寬的問題。
交換機,則和它正好相反。一個四口的Switch接入100M的網路 ,這四個口的帶寬都是100M
9.集線器和交換機是不是差不多?
集線器,同一時刻只能有兩個口進行通信。
交換機,則同一時刻可以有多個口進行通信,所以通信能力比集線器高,因為速度也比集線器快。
10.如果集線器沒有交換機好,那為什麼還會存在集線器?
集線器屬於那種比較簡單的設備。
比如:只有三台終端,想組建一個區域網,並且沒什麼太高的要求,只要能共享資料就可以了。
那麼,這樣的情況用「集線器」就可以了。簡單,成本也低。如果換用「交換機」或者「路由器」,則成本比較高,所以在一些要求不高的網路中,「集線器」還算是有一點點用處的。
⑺ C語言路由程序的一些問題
這樣應該可以
#include<stdio.h>
int main()
{
int repeat;
scanf("%d",&repeat);
int a[repeat];
for(int i=0;i<repeat;i++)
scanf("%d",&a[i]);
for(int j=0;j<repeat;j++)
for(int i=1;i<=a[j];i++)
{
for(int k=1;k<=2*i-1;k++)
{
printf("%d",i);
printf(" ");
}
printf("\n");
}
return 0;
}
⑻ C語言實現基於網路編碼的無線多跳網路組播路由演算法設計
c語言實現網路,我想你是說用VC開放win32的應用程序吧,直接用API函數,不是c語言實現!
它既具有高級語言的特點,又具有匯編語言的特點。它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。
1.一個C語言源程序可以由一個或多個源文件組成。 2.每個源文件可由一個或多個函數組成。 3.一個源程序不論由多少個文件組成,都有一個且只能有一個main函數,即主函數。 4.源程序中可以有預處理命令(include 命令僅為其中的一種),預處理命令通常應放在源文件或源程序的最前面。 5.每一個說明,每一個語句都必須以分號結尾。但預處理命令,函數頭和花括弧「}」之後不能加分號。 6.標識符,關鍵字之間必須至少加一個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
底下是重點了,C語言不是萬能的
1. C語言的缺點主要表現在數據的封裝性上,這一點使得C在數據的安全性上有很大缺陷,這也是C和C++的一大區別。 2. C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程序的安全性,對數組下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。 [C語言指針] 指針是C語言的一大特色,可以說是C語言優於其它高級語言的一個重要原因。就是因為它有指針,可以直接進行靠近硬體的操作,但是C的指針操作也給它帶來了很多不安全的因素。C++在這方面做了很好的改進,在保留了指針操作的同時又增強了安全性。Java取消了指針操作,提高了安全性,適合初學者使用。
⑼ 無線網路 c語言
我先說一下我的理解,如果不正確請指正。可以理解為特殊情況下求兩點的最短路徑,在兩點已經存在一條可達路徑的情況下,加入若干點後,這個路徑會不會縮短,且加入的點到任意原來點的可達距離不能錯過108.
思路:
先篩選出距起點A距離小於R的坐標,然後在這些找出一個點X,使AX與AB(B是終點)的夾角最小;
把X當作新起點A,在循環步驟1,直至找到一條AB的最短路徑;
如果在這過程中新加入的點超過K個,則停止這種做法,否則計算這條路徑中新加入點的個數,並輸出;
在原有坐標的基礎上,求出AB的最短路徑,求法參考步驟1;
判斷這條路徑中任意相鄰的三個點中間的坐標,如果由m中的某一坐標(這個坐標要滿足到任意原坐標的距離小於108)替換,距離會不會相應的變小,如果會變小,記錄縮短的距離;
最後統計m坐標被選中的坐標數N,如果大於N>K,則結果是K,否則是N。
代碼我明晚寫。
⑽ 簡單路由表的數據結構(C語言)應該怎麼設計
圖
實現的話可以用矩陣,也可以用鄰接表,具體參考嚴蔚敏《數據結構》和謝西仁《計算機網路》