网络
一,通信的三要素
1,找到对方IP
2,数据要发送到对方指定的应用程序上。为了标识这些应用程序,所以给这些网络应用程序用数字进行标识为了方便称呼数字就叫做端口。(逻辑端口)。
3,定义通讯规则,这个通讯规则称为协议,国际组织定了一个通用的协议:TCP/IP协议àIP地址
二,网络模型
三,UDP(例子:去邮局邮寄东西,聊天,视频都是UDP)
特点:
1, 将数据的源和目的封装成数据包中,不需要建立连接
2, 每个数据报的大小限制在64k
3, 因为是无连接,是不可靠协议
4, 不需要建立连接,速度快
Socket:
① Socket就是为网络服务提供的一种机制
② 通信的两端都有Socket
③ Socket就是为网络服务提供的一种机制
④ 网络通信其实就是socket之间的通信
⑤ 数据在两个socket之间通过IO传输
DatagramSocket:
构造函数:DatagramSocket() 系统指定端口
DatagramSocket(int port)人为指定要监听的端口
send(DatagramPacket p)
receive(DatagramPacket p)
DatagramPacket:
发送构造函数:
Datagrampacket(byte[]buf,int offset,int length,InetAddreess address,int port)
接收构造函数:
DatagramPacket(byte[] buf,int length)
方法:
① InetAddress getAddress() 获取IP
② byte[] getData() 返回数据缓冲区
③ int getLength() 返回要发送或接收到的数据的长度
④ int getPort() 返回端口
四,TCP(例子:打电话)
面向连接,可靠的,建立通路后可以传输大数据量(UDP也可以)
特点:
1,建立连接,形成传输数据的通道
2,在连接中进行大数据量传输
3,通过3次握手完成连接,是可靠协议
4,必须建立连接效率稍低
① tcp分客户端和服务端
a) 客户端对应的对象是Socket
b) 服务端对应的是ServerSocket
② 客户端(Socket)
a) 构造函数:
i. Socket(InetAddress address, int port)客户端一建立就要连接服务端,传输依赖的是数据通路
ii. Socket()+connect(SocketAddress ip)连接指定的目的端
iii. Socket(Stirng host,int port)
b) 方法:
i. InetAddress getInetAddress()
ii.
c) 通过查阅Socket对象,发现在该对象建立时,就可以去连接指定的主机,因为tcp是面向链接的。所以在建立Socket服务时,就要有服务器端存在,并连接成功,形成通路后在该通道进行数据的传输
d) 步骤:
i. 创建Socket服务,并指定要连接的主机和端口 à形成Socket流
1. Socket流中既有输入流,也有输出流
2. 输出流:getOutputStream( ) 返回此套接字的输出流。
3. 输入流:getInputStream()
③ 服务器端(ServerSocket)
a) 构造函数:
i. ServerSocket(int port ) 绑定端口
ii. ServerSocket()+bind(SocketAddress )
b) 方法:
1. Socket accept() 侦听并接受此端口的连接这个方法是阻塞式的,没有就会等待
c) 步骤:
1. 建立服务端的socket服务ServerSocket( ),并监听一个端口
2. 获取连接过来的客户端对象 Socket accept()
3. 客户端如果发来数据,那么服务端就要使用对应的客户端对象的读取流读取发过来的数据 InputStreamgetInputStream()并打印在控制台
4. 关闭服务端
d) 启动顺序问题:Tcp必须先启动服务端,Udp则无所谓