网络
TCP通信,JavaWeb基于Http通信的
TCP/IP协议
网络:两台或者或者多台电脑之间能够进行通信
TCP/IP协议:定义了电子设备(比如计算机)如何连入因特网,以及数据如何在他们之间传输的标准
IP:ip地址,电脑的唯一地址,方便电脑之间的通信,ip地址是唯一的
有四个字节,每个字节之间用"."隔开,每一位的范围:0~255,256种可能
127.0.0.1 本机的IP地址
端口:端口号,0~65535个, 通过端口号决定与哪个程序通信
- 0-1023是公认端口号,即已经公认定义或为将要公认定义的软件保留的
- 1024-65535是并没有公共定义的端口号,用户可以自己定义这些端口的作用。8888 8090 9999 7777
- TCP:065535个,UDP:065535
- http默认端口:80 https默认端口:443 mysql默认端口:3306
TCP:面向连接的可靠的连接,基于字节流
TCP通信的时候:发送数据之前,与对方建立一个连接,三次握手机制
可以通过ping 127.0.0.1检查本机网络问题
TCP通信
Socket编程:Socket(客户端的套接字) ServerSocket(服务端的套接字)
当连接建立时,服务器会创建一个Socket对象,客户端和服务器现在可以通过Socket对象的写入和读取(字节流)来进行通信
流式套接字:TCP,面向连接
核心类
ServerSocket
服务器套接字,等待客户端的连接
常用方法
- accept() 用于侦听要连接到此套接字并接受它 一旦与客户端连接,就会得到一个与客户端一对一的Socket
- close() 用于关闭此套接字
Socket
本机IP: 127.0.0.1
- getInputStream() 用于返回此套接字的输入流
- getOutputStream() 用于返回此套接字的输出流
步骤
服务端
- 创建一个ServerSocket
- 调用accep(),等到客户端的连接
- 得到客户端的Socket对象,调用getInputStream(),getOutputStream() 得到输入输出流
- 输入流接受数据,输出流发送数据
- 关闭资源
客户端
- 创建一个Socket, 请求服务器地址, 端口, 与服务器进行连接
- 调用getInputStream() getOutputStream() 得到输入输出流
- 输出流发送数据,输入流接收数据,
- 关闭资源
启动的顺序
先启动服务器,再启动客户端
UDP通信
点对点的通信
数据报套接字:面向无连接,不可靠的传输层协议
核心类:
- DatagramSocket:发送或接受数据包
- DatagramPacket:数据包
面向无连接,不可靠的传输层协议
核心类:
- DatagramSocket:发送或接受数据包
- DatagramPacket:数据包