一、OSI参考模型
分层:
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层
二、IP地址
ip地址唯一标识一台计算机。ip地址包含网络地址和主机地址两部分。
IPv4:有32位地址。由4个8位二进制数组成。
IPv6:有128位地址。由8个16位的无符号整数组成。
三、端口
端口是计算机与外界通信的入口和出口,范围是0~65535(2的16次冥-1)。
在同一台计算机上,任何两个进程不能同时使用一个同一个端口。
但是,一个端口可以被多个线程访问。
四、TCP/IP协议
1、TCP/IP协议簇,简称为TCP/IP协议。
2、TCP是面向连接的,可靠的,全双工的,基于字节流的传输层通信协议。
3、UDP是无连接的,不可靠的,数据报协议。UDP主要的作用是:压缩。它将网络数据压缩成数据报的形式。
五、Socket类
1、构造方法
1.1 Socekt s= new Socket(hostname,port);
1.2 Socket s= new Socket(address,port);
2、主要方法:
1)int getPort:返回远程端口
2) int getLocalPort :返回本地端口
3)getInputStream
4)getOutputStream
六、SocketServer类
1、构造方法
1.1 SocketServer ss= new SocketServer(port);
1.2 SocketServer ss= new SocketServer(port,maxqu); //maxqu:最大连接数
2、主要方法:
1)accept 等待客户端发起通信,监听状态
七、InetAddress类
1、主要方法
1.1 InetAddress getLocalHost() :返回本地主机的InetAddress对象
1.2 InetAddress getByName(String hostname) :返回指定主机名hostname对应的InetAddress对象
1.3 InetAddress[] getAllByName(String hostname):返回指定主机名hostname对应的所有可能的InetAddress对象
八、基于UDP协议的socket编程
DatagramPacket:数据容器
DatagramSocket:发送或接收。它不会产生输入、输出流。
注意:基于UDP通信的两个程序之间的关系,是对等的,无主次之分。
8.1、DatagramPacket 类
8.1.1 DatagramPacket 类的构造方法
DatagramPacket dp= new DatagramPacket(sendStr.getBytes(), 0, sendStr.getBytes().length, ia,9070);
byte[] getData():返回字节数组,也就是包中的数据。
8.2.DatagramSocket常用方法
8.2.1 send方法
8.2.2 receive方法