TCP:面向连接的协议
数据传递之前,首先建立连接,通过三次握手原则,能保证数据的安全性
通过三次握手原则:
第一次:客户端像服务端发送请求:请求建立连接(确定服务端是否存在)
第二次:服务端的响应,响应同意建立连接
第三次:开始建立连接
TCP发送
1.创建客户端的Socket对象
new Socket(String host,int port);
2.创建输出流,写数据
getOutputStream();
3.关释放资源
close()
TCP接收
1.创建服务端的Socket对象(ServerSocket)
new ServerSocket(int port);
2.调用ServerSocket监听端口号,接收数据
accept();
3.创建输入流,读数据
getInputStream();
read();
4.解析数据,并在控制台显示
new String(byte[] byte, int off,int length)
5.关释放资源
close()
注意:
服务端必须存在
accept():监听端口号,创建接收数据的通信管道,如果多次调用,会无法接收数据
底层使用IO流进行读写数据,read()会阻塞程序的运行
read阻塞:默认情况下,read不知道当前所要读的数据有多少条(读取不到-1),所以阻塞等待下一跳数据
解决read阻塞问题:
shutdownOutput();//再数据传输之后加上了一个末尾(-1)
shutdownInput();//再数据传输之后加上了一个末尾(-1)
两端约定最大数据量