JAVA------TCP发送数据和接收数据

TCP发送数据和接收数据

1.TCP通信原理

  • TCP通信协议是一种可靠的网络协议, 它在通信的两端各建立一个Socket对象, 从而在通信的两端形成网络虚拟链路,一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信

  • Java对基于TCP协议的的网络提供了良好的封装,使用Socket对象来代表两端的通信端口,并通过Socket产 生IO流来进行网络通信Java为客户端提供了Socket类,为服务器端提供了ServerSocket类

  • 在这里插入图片描述


2.TCP发送数据的步骤:

  1. 创建客户端的Socket对象(Socket)
  2. 获取输出流,写数据
  3. 释放资源

看代码演示:

发送数据:

package TCP;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class SendDemo {
    
    
	public static void main(String[] args) throws IOException{
    
    
		//创建客户端的Socket对象
		//Socket (InetAddress adress,int port)创建流套接字并将其连接到指定IP地址的指定端口号
//		Socket s=new Socket(InetAddress.getByName("192.168.224.1"), 10000);
		//Socket (String host,int port)创建流套接字并将其连接到指定主机的指定端口号
		Socket s=new Socket("192.168.223.1", 10000);
		
		//获取输出流,写数据
		//OutputStream getOutputStream();返回此套接字的输出流
		OutputStream os=s.getOutputStream();
		os.write("hello,tcp".getBytes());
		
		//释放资源
		s.close();
		
	}

}

因为TCP是可靠传输,必须有三次握手,所以只有运行了接收数据程序时,发送数据程序才可正常使用。这里192.168.223.1是本机IP地址。


3.TCP接收数据的步骤:

  1. 创建客户端的Socket对象(SevereSocket)
  2. 获取输入流,读数据,并把数据显示在控制台
  3. 释放资源

看代码演示:

package TCP;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ReceiveDemo {
    
    
	public static void main(String[] args) throws IOException {
    
    
		//创建客户端的Socket对象(SevereSocket)
		//ServerSocket (int port)创建绑定到指定端口的服务器套接字
		ServerSocket ss=new ServerSocket(10000);	
		
		//Socket accept()侦听要连接到此套接字并接受他
		Socket s=ss.accept();
		
		//获取输入流,读数据,并把数据显示在控制台
		InputStream is=s.getInputStream();
		byte[] bys=new byte[1024];
		int len=is.read(bys);
		String data=new String(bys,0,len);
		System.out.println("数据是:"+data);
			
		//释放资源
		s.close();
		ss.close();	
	}

}

最终接收端输出:“数据是:hello,tcp”

猜你喜欢

转载自blog.csdn.net/weixin_45102820/article/details/113781072
今日推荐