Java网络编程之TCP协议数据传输

一、TCP协议概述

TCP协议是相对于UDP比较稳定的传输协议,这里存在三次握手,来确保连接状态,同时有明确的客户端和服务端之分。
TCP服务中需要服务器端先启动,需要监听指定端口,等待客户端的连接。
客户端主动连接服务器,和服务器连接之后,才可以进行数据交互,服务器不能主动连接客户端。

对于TCP操作而言,Java中提供了两个Socket

1. 服务端Socket 
	java.net.ServerSocket;
	创建对应的ServerScoket开启服务器,等待客户端连接
2. 客户端Socket
	java.net.Socket
	创建客户端Scoket,并且连接服务器,同时将Socket发送给服务器绑定注册。
二、Socket 客户端

给客户端提供数据传输的符合TCP/IP要求的Socket对象

1、构造方法 Constructor
Socket(String host, int port);
	host是服务器IP地址,port对应服务器程序的端口号
	通过指定的服务器IP地址和端口号,获取TCP连接对象
2、成员方法 Method
InputStream getInputStream();
	获取Socket对象输入字节流,可以从服务器获取对应的数据
	InputStream是一个资源,需要在程序退出时关闭
	
OutputStream getOutputStream();
	获取Sokcet对象输出字节流,可以发送数据到服务器
	OutputStream是一个资源,需要在程序退出时关闭

void close();
	关闭客户端Socket

void shutdownOutput();
	禁止当前Socket发送数据

TCP/IP协议对应的Socket是基于IO流实现的。

三、ServerSocket 服务器端

在服务端开启Socket服务器

1、构造方法 Constructor
ServerSocket(int port);
	开启ServerSocket服务器,并且明确当前的服务端口
2、成员方法 Method
Socket accept();
	监听并且连接,得到一个Socket对象,同时该方法是一个阻塞方法,会处于一个始终
	的监听状态。
	返回的是Socket,也就是客户端Socket对象,获取到当前Socket对象,相对于获取到
	客户端连接,同时使用的Socket和客户端一致。
四、TCP协议代码演示
1、服务器端流程
1. 创建ServerSocket服务器,同时监听指定端口
2. 通过accept方法获取Socket连接,得到客户端Socket对象
3. 通过Socket对象,获取InputStream,读取客户端发送数据
4. 通过Socket对象,获取OutputStream,发送数据给客户端
5. 关闭服务
public class TcpServer {
   
   
	public static void main(String[] args) throws IOException {
   
   
		System.out.println("服务器已启动");
		// 1. 创建ServerSocket服务器,同时监听指定端口
		ServerSocket serverSocket = new ServerSocket(6666);
	
		// 2. 通过accept方法获取Socket连接,得到客户端Socket对象
		Socket socket = serverSocket.accept();
		
		// 3. 通过Socket对象,获取InputStream,读取客户端发送数据
		InputStream inputStream = socket.getInputStream();
		
		// IO流操作
		byte[] buf = new byte[1024
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值