1、网络编程html
(1)网络编程:Java做为一种互联网编程语言,其提供了网络类库,能够实现无痛的网络链接,网络链接的底层都被Java隐藏了,由jvm控制。java实现了一个跨平台的网络库。造成了统一的网络编程环境。
(2)网络编程的目的:直接或间接经过网络协议于其余计算机实现数据交互,通信,资源共享java
(4)关键:准肯定位之际、高效可靠的传播mysql
(3)网络通讯的要素:通讯双方的一个IP和端口号(经过必定规则----网络通讯协议)sql
a、OSI参考模型:(互联网不普遍使用)七层:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层编程
b、TCP/IP参考模型:四层:应用层、传输层、网络层、物理层(物理+数据链路层)网络
c、TCP/IP各层协议:应用层(HTTP;FTP;Telnet;DNS);传输层(TCP;UDP...);网络层(IP,ICMP,APR);物理层(link)oracle
2、通讯要素:ip和端口号jvm
(1)ip地址(标识Internet上惟一计算机(通讯实体)):InetAddresssocket
a、String getHostName()得到主机名
b、byte[] getAddress()返回每一个字节的地址tcp
c、String getHostAddress()返回ip地址
d、boolean isReachable()测试目标地址是否能到达
e、IneetAddress localHost = InetAddress.getLocalHost本地主机地址
(2)本地回路地址:127.0.0.1 主机名:localhost
(3)IP地址的分类:ipv4和ipv6
(4)ipv4:4个字节(32位)组成(每一个字节都在0-255之间,使用点分时进制);
(5)ipv6:16个字节(128位,每位16进制)
(6)公网地址(万维网),私有地址(局域网--192.168.)
(7)端口号:标识计算机上正在运行的进程
(8)端口号分类:
a、公认端口(0--1023):被预先设定的服务通讯占用(http:80,ftp:21)。
b、注册端口(1024-49151):分配个用户进程(Tomcat:8080,mysql:3306,oracle:1521)
c、动态/私有端口:49152-65535
(9)ip地址的表现方式:ip地址;域名
3、通讯要素:网络协议
一、TCP/IP 协议簇:TCP/IP是一组协议,TCP是传输控制写,IP是网络互联协议(网络层重要协议,主要支持网间互联的数据通讯)
二、传输层主要的两种协议:传输控制协议TCP、用户数据包协议UDP
三、TCP:使用TCP协议,必需要创建TCP链接,造成传输数据通道。采用三次握手,点对点通讯,是可靠的
TCP协议再进行通讯的时候须要客户端和服务端
传输完毕以后,须要释放已创建的链接,四次挥手,效率低
四、UDP:将数据源封装成一个个的数据包,不须要创建链接,每一个数据包大小限制再64k之内,发送双方不须要确认,不可靠。不须要创建链接,能够广播。开销小,效率高,不可靠,速度块(直播)。
4、TCP编程
一、Socket:
(1)ip和端口号就组成了一组网络套接字(Socket)。网络上惟一标识的ip和端口号就组成了惟一标识的标识符套接字。
(2)网络两端都在须要具有socket,它是两台机器通讯的端点。
(3)数据在两个Socket中经过IO流的方式进行通讯
(4)先写服务端Socket:
a、建立一个Socket:ServerSocket serverSocket = new ServerSocket(7765);
b、须要监听客户段发来的请求,并返回一个Socket:Socket socket = serverSocket.accept();
c、接受客户端发送的消息:InputStream is = socket.getInputStream();
d、处理消息
e、关闭资源
(5)客户端
a、建立socket对象:InetAddress inet = InetAddress.getByName("127.0.0.1");
socket = new Socket(inet, 8989);
b、获取socket对应的流:OutputStream os = socket.getOutputStream();
(6)经常使用方法:getInputStream()、getOutputStream()、getInteAddress();getLocalAddress();getPort();getLocalPort();close();shutdownInput();shutdownOutput();
二、Socket步骤;
(1)建立Socke对象:根据制定的服务端的ip地址和端口号
(2)获取socket的输入输出流:getInputStream/getOutputStream
(3)经过必定的协议对socket进行读写操做:TCP/IP或UDP
(4)关闭socket
5、UDP编程
一、TCP:使用tcp提供可依赖的字节流服务进行数据传输(流套接字)
二、UDP:数据报套接字:经过数据包的方式,使用DatagramSocket对象,会把数据封装成DatagramPacket,
三、UDP编程流程:
(1)创建接收端和发送端
(2)须要建立DatagramSocket和DatagramPacket对象
(3)封装数据报
(4)调用socket接收和发送方法
(5)关闭资源
6、URL编程
一、url:统一资源定位符,互联网上的某一资源地址
二、url组成:由五部分组成
<传输协议>://<主机名>:<端口号>/<资源目录>#片断名?参数列表
三、url的经常使用方法:
public URL(String spec)经过一个url地址,构造出一个url对象
URL(URL context,String spec) eg:new URL(new URL(""),"indext.html")
URL(String,String,String) eg:new URL("HTTP","www.baidu.com","index.html")
URL(String args1,String args2,String args3,String args4) eg:new URL("HTTPS","www.baidu.com",80,"index.html")
String getProtocol()获取URL的协议名
getHosts()获取主机名
getPath()
getFile()
getQuery()获取查询名