网络编程之网络基础

一个人想着一个人 提交于 2020-03-01 22:42:08

计算机网络:
把分布在不同地理区域的计算机与专门的外部设备用通信线路互连成一个规模大、功能强的网络系统,从而使众多的计算机可以方便地互相传递信息、共享硬件、软件、数据信息等资源。
网络编程的目的:
直接或间接地通过网络协议与其它计算机实现数据交换,进行通讯。
网络编程中有两个主要的问题:
1.如何准确地定位网络上一台或多台主机;定位主机上的特定的应用
2.找到主机后如何可靠高效地进行数据传输

IP地址: InetAddress
➢唯一的标识Internet上的计算机(通信实体)
➢本地回环地址:(hostAddress): 127.0.0.1 主机名(hostName): localhost
➢IP地址分类方式1: IPV4 和IPV6
IPV4: 4个字节组成,4个0-255。 大概42亿,30亿都在北美,亚洲4亿。2011年初已经用尽。以点分十进制表示,如192.168.0.1
IPV6: 128位 (16个字节),写成8个无符号整数,每个整数用四个十六进制位表示,数之间用冒号(: )分开,如: 3ffe:3201:1401:1280:c8ff:fe4d:db39:1984
➢IP地址分类方式2:公网地址:(万维网使用)和私有地址(局域网使用)。192.168.开头的就是私有址址,范围即为192.168.0.0–192. 168.255.255,专门为组织机构内部使用
➢特点:不易记忆

端口号
●端口号标识正在计算机上运行的进程(程序)
➢不同的进程有不同的端口号
➢被规定为一个16位的整数0~65535。
➢端口分类:
➢公认端口: 0~1023。 被预先定义的服务通信占用(如: HTTP占用端口80,FTP占用端口21,Telnet占用端口23)
➢注册端口: 1024~49151。 分配给用户进程或应用程序。 (如: Tomcat占用端口8080,MySQL占用端口3306,Oracle 占用端口1521等)。
➢动态/私有端口: 49152~65535.
端口号与IP地址的组合得出一.个网络套接字: Socket。

网络通信协议
计算机网络中实现通信必须有一些约定,即通信协议,对速率、传输代码、代码结构、传输控制步骤、出错控制等制定标准。|
问题:网络协议太复杂
计算机网络通信涉及内容很多,比如指定源地址和目标地址,加密解密,压缩解压缩,差错控制,流量控制,路由控制,如何实现如此复杂的网络协议呢?
通信协议分层的思想
在制定协议时,把复杂成份分解成- -些简单的成份,再将它们复合起来。最常用的复合方式是层次方式,即同层间可以通信、上一层可以调用下一层,而与再下一层不发生关系。各层互不影响,利于系统的开发和扩展。

测试InetAddress类

import java.net.InetAddress;
import java.net.UnknownHostException;

public class InetAddressTest {

	public static void main(String[] args) {
		try {
		//类的构造器被私有化
			InetAddress inet1 = InetAddress.getByName("192.168.1.104");
			InetAddress inet2 = InetAddress.getByName("www.mi.com");
			System.out.println(inet1);
			System.out.println(inet2);
		} catch (UnknownHostException e) {
			e.printStackTrace();
		}
	}
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!