JAVA ------ TCP envia e recebe dados

TCP envia dados e recebe dados

1. Princípio de comunicação TCP :

  • O protocolo de comunicação TCP é um protocolo de rede confiável. Ele estabelece um objeto Socket em ambas as extremidades da comunicação, formando assim um link virtual de rede em ambas as extremidades da comunicação. Uma vez que o link de rede virtual é estabelecido, os programas em ambas as extremidades podem passar Link virtual para comunicação

  • Java fornece um bom pacote para a rede com base no protocolo TCP. Ele usa objetos Socket para representar as portas de comunicação em ambas as extremidades e gera fluxos de IO através de Socket para comunicação de rede. Java fornece a classe Socket para o cliente e a classe ServerSocket para o servidor.

  • Insira a descrição da imagem aqui


2. As etapas de envio de dados do TCP:

  1. Crie o objeto Socket do cliente (Socket)
  2. Obter fluxo de saída, gravar dados
  3. Liberar recursos

Veja a demonstração do código:

enviar dados:

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();
		
	}

}

Como o TCP é uma transmissão confiável, deve haver um handshake de três vias, para que o programa de envio de dados possa ser usado normalmente apenas quando o programa de recebimento de dados estiver em execução. Aqui, 192.168.223.1 é o endereço IP da máquina.


3. As etapas de recebimento de dados do TCP:

  1. Crie o objeto Socket do cliente (SevereSocket)
  2. Obtenha o fluxo de entrada, leia os dados e exiba os dados no console
  3. Liberar recursos

Veja a demonstração do código:

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();	
	}

}

A saída final de recebimento: "Os dados são: hello, tcp"

Acho que você gosta

Origin blog.csdn.net/weixin_45102820/article/details/113781072
Recomendado
Clasificación