Network Connection Element

本文介绍了网络连接设备的基本概念,包括中继器、集线器、交换机和路由器等。详细解释了它们在网络通信中的作用、工作原理及区别,如中继器如何放大信号,集线器如何成为局域网中的中央设备,交换机如何提高数据交换速度,以及路由器如何实现不同网络间的互联。

(来源:http://baike.baidu.com/view/2262270.htm

网络连接设备是把网络中的通信线路连接起来的各种设备的总称,这些设备包括中继器、集线器、交换机和路由器等。

中继器:
是一种放大模拟信号或数字信号的网络连接设备,通常具有两个端口。它接收传输介质中的信号,将其复制、调整和放大后再发送出去
,从而使信号能传输得更远,延长信号传输的距离。中继器不具备检查和纠正错误信号的功能,它只是转发信号。

集线器:
是构成局域网的最常用的连接设备之一。集线器是局域网的中央设备,它的每一个端口可以连接一台计算机,局域网中的计算机通过它

来交换信息。常用的集线器可通过两端装有RJ-45连接器的双绞线与网络中计算机上安装的网卡相连,每个时刻只有两台计算机可以通信。

利用集线器连接的局域网叫共享式局域网。集线器实际上是一个拥有多个网络接口的中继器,不具备信号的定向传送能力。

交换机:
又称交换式集线器,在网络中用于完成与它相连的线路之间的数据单元的交换,是一种基于MAC(网卡的硬件地址)识别,完成封装、转
发数据包功能的网络设备。在局域网中可以用交换机来代替集线器,其数据交换速度比集线器快得多。这是由于集线器不知道目标地址在何处,只能将数据发送到所有的端口。而交换机中会有一张地址表,通过查找表格中的目标地址,把数据直接发送到指定端口。

利用交换机连接的局域网叫交换式局域网。在用集线器连接的共享式局域网中,信息传输通道就好比一条没有划出车道的马路,车辆只能在无序的状态下行驶,当数据和用户数量超过一定的限量时,就会发生抢道、占道和交通堵塞的想象。交换式局域网则不同,就好比将上述马路划分为若干车道,保证每辆车能各行其道、互不干扰。交换机为每个用户提供专用的信息通道,除非两个源端口企图同时将信息发往同一个目的端口,负责各个源端口与各自的目的端口之间可同时进行通信而不发生冲突。

除了在工作方式上与集线器不同之外,交换机在连接方式、速度选择等方面与集线器基本相同。

路由器:
路由器是一种连接多个网络或网段的网络设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读”懂对方的数
据,实现不同网络或网段间的互联互通,从而构成一个更大的网络。目前,路由器已成为各种骨干网络内部之间、骨干网之间一级骨干网和因特网之间连接的枢纽。校园网一般就是通过路由器连接到因特网上的。

路由器的工作方式与交换机不同,交换机利用物理地址(MAC地址)来确定转发数据的目的地址,而路由器则是利用网络地址(IP地址)来确定转发数据的地址。另外路由器具有数据处理、防火墙及网络管理等功能。

在 Android 开发中,如果你在应用中使用了网络通信、摄像头、位置等系统功能,必须在 `AndroidManifest.xml` 文件中声明相应的权限。如果你遇到错误: ``` Element uses-permission must be declared ``` 这说明你缺少了某些权限声明,或者权限声明的位置不正确。 --- ## ✅ 正确的 `uses-permission` 使用方式 ### 🔧 修复步骤: 1. 打开你的 `AndroidManifest.xml` 文件; 2. 在 `<manifest>` 标签内部,**在 `<application>` 标签之前** 添加权限声明; 3. 确保权限拼写正确; 4. 常见权限包括: --- ### 📄 示例:`AndroidManifest.xml` ```xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sensormonitor"> <!-- 网络权限 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 访问网络状态权限(可选) --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 如果需要访问位置信息(如使用 GPS) --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme"> <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> ``` --- ### 🔍 常见错误原因 | 错误原因 | 解决方法 | |----------|----------| | `uses-permission` 写在 `<application>` 内部 | 移到 `<application>` 外部 | | 权限名称拼写错误,如 `INTERNETT` | 检查拼写,使用标准权限名 | | 没有声明权限导致运行时异常 | 添加对应权限 | | 混淆了 `uses-permission` 和 `permission` 标签 | 使用 `uses-permission` 表示使用系统权限 | --- ### 🧠 常用权限说明 | 权限名称 | 用途 | |----------|------| | `INTERNET` | 允许应用访问网络 | | `ACCESS_NETWORK_STATE` | 获取网络状态 | | `CAMERA` | 使用摄像头 | | `READ_EXTERNAL_STORAGE` | 读取外部存储(如图片) | | `WRITE_EXTERNAL_STORAGE` | 写入外部存储 | | `ACCESS_FINE_LOCATION` | 精确定位(GPS) | | `BLUETOOTH` / `BLUETOOTH_ADMIN` | 蓝牙通信 | | `WAKE_LOCK` | 防止屏幕休眠 | --- ### 🧪 示例:使用网络权限的场景 如果你在代码中使用了: ```java URL url = new URL("http://yourserver.com/api/data"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); ``` 你就必须声明: ```xml <uses-permission android:name="android.permission.INTERNET" /> ``` --- ## ✅ 总结 - `uses-permission` 必须写在 `<application>` 标签 **之前**; - 权限拼写必须正确; - 所有涉及系统资源访问的操作都必须声明权限; - Android 6.0 以上还需要动态申请权限(如存储、位置等)。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值