当前位置:首页 » 编程语言 » c语言实现路由器功能
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言实现路由器功能

发布时间: 2022-06-30 22:23:48

⑴ 如何用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.

思路:

  1. 先筛选出距起点A距离小于R的坐标,然后在这些找出一个点X,使AX与AB(B是终点)的夹角最小;

  2. 把X当作新起点A,在循环步骤1,直至找到一条AB的最短路径;

  3. 如果在这过程中新加入的点超过K个,则停止这种做法,否则计算这条路径中新加入点的个数,并输出;

  4. 在原有坐标的基础上,求出AB的最短路径,求法参考步骤1;

  5. 判断这条路径中任意相邻的三个点中间的坐标,如果由m中的某一坐标(这个坐标要满足到任意原坐标的距离小于108)替换,距离会不会相应的变小,如果会变小,记录缩短的距离;

  6. 最后统计m坐标被选中的坐标数N,如果大于N>K,则结果是K,否则是N。



代码我明晚写。

⑽ 简单路由表的数据结构(C语言)应该怎么设计


实现的话可以用矩阵,也可以用邻接表,具体参考严蔚敏《数据结构》和谢西仁《计算机网络》