文章目录
网络编程
地球村
1.计算机网络
把分布在不同地理区域的具有独立功能的计算机,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。
2.网络编程语言(如java)
Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的 支持,程序员能够很容易开发常见的网络应用程序。
Java提供的网络类库,可以实现网络连接联网的底层细节被隐藏在 Java 的本机安装系统里,由 JVM 进行控制。并且 Java 实现了一个 跨平台的网络库,程序员面对的是一个统一的网络编程环境
我们所编写的程序具备在网络间进行信息传递的,java是支持网路通信.将底层实现细节封装起来.
3.网络编程的目的(网络通信)
(1)目的【重要】
直接或间接地通过网络协议与其它计算机进行通讯
访问百度过程
(2)有两个主要的问题【重要】
如何准确地定位网络上一台或多台主机
找到主机后如何可靠高效地进行数据传输
如何实现网络中的主机互相通信: (解决)
如何实现网络中的主机互相通信:
1)通信双方地址
IP地址:InetAddress
唯一的标识 Internet 上的计算机
本地回环地址(hostAddress):127.0.0.1 主机名(hostName):localhost
IP地址:公网地址(万维网使用)和私有地址(局域网使用),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地址的组合得出一个网络套接字。
Internet上的主机有两种表示方式:
域名(hostName):www.baidu.com
IP 地址(hostAddress):220.181.111.37
InetAddress类主要表示IP地址,两个子类:Inet4Address、Inet6Address。
I n e t A d d r e s s 类 对 象 含 有 一 个 I n t e r n e t 主 机 地 址 的 域 名 和 I P 地 址 : www.baidu.com和 220.181.111.37
域名容易记忆,当在连接网络时输入一个主机的域名后,域名服务器(DNS)负责 将域名转化成IP地址,这样才能和主机建立连接。 -------域名解析
方法:
InetAddress.getByName(“www.baidu.com”);
getHostAddress();
getHostName();
2)一定的规则(网络通信协议)
网络通信协议
计算机网络中实现通信必须有一些约定,即通信协议,对速率、传输代 码、代码结构、 传输控制步骤、出错控制等制定标准。
通信协议分层的思想
由于结点之间联系很复杂,在制定协议时,把复杂成份分解成一些简单 的成份,再将它们复合起来。最常用的复合方式是层次方式,即同层间可 以通信、上一层可以调用下一层,而与再下一层不发生关系。各层互不影 响,利于系统的开发和扩展。(计算机网络原理自顶向下)
传输层的两个协议
TCP
- 传输控制协议TCP(Transmission Control Protocol)
使用TCP协议前,须先建立TCP连接,形成传输数据通道
传输前,采用“三次握手”方式,安全可靠,传输数据大,效率低 (特点)
TCP协议进行通信的两个应用进程:客户端、服务端
在连接中可进行大数据量的传输
传输完毕,需释放已建立的连接,效率低
在断开时要进行**“四次挥手**
TCP三次握手四次挥手具体过程
UDP
- 用户数据报协议UDP(User Datagram Protocol)
将数据、源、目的封装成数据包,不需要建立连接
每个数据报的大小限制在64K内
因无需连接,故是不可靠的
发送数据结束时无需释放资源,无连接,不安全,传输速度快(特点)
4.通信媒介
Scoket
利用套接字(Socket)开发网络应用程序早已被广泛的