Notas de estudio de red (protocolo de comunicación TCP/I, comunicación TCP, etc.)

red

protocolo de comunicación de red

Para permitir que la red de computadoras se comunique entre sí, es necesario formular un conjunto de estándares para la velocidad de transmisión de datos, el código de transmisión, la estructura del código, los pasos de control de transmisión, el control de errores, etc.

modelo de siete capas

El modelo de siete capas, también conocido como modelo de referencia OSI (Open System Interconnection), es un sistema estándar desarrollado por la Organización Internacional de Normalización (ISO) para la interconexión entre ordenadores o sistemas de comunicación. Es un cuerpo modelo abstracto de siete capas, que incluye no solo una serie de términos o conceptos abstractos, sino también protocolos específicos.
ISO significa Internationalization Standard Organization (Organización Internacional de Normalización).

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-cYtCji5C-1661734006742) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823085931473.png)]

Protocolo TCP/IP

El protocolo TCP/IP es el protocolo de comunicación más utilizado en Internet. TCP/IP es la abreviatura del inglés Transmission Control Protocol/Internet Protocol, que significa "Protocolo de control de transmisión/Protocolo de Internet".

**Red:** Comunicación entre dos o más computadoras

Red de área amplia (WAN) es lo que solemos llamar Internet, que es una red en todo el mundo.

La red de área local ((LAN) intranet) , a diferencia de la red de área amplia (WAN), se refiere principalmente a la red de interconexión de computadoras en un área pequeña. Este "pequeño ámbito" puede ser una familia, una escuela, una empresa o un departamento gubernamental.

El protocolo TCP/IP define el estándar de cómo los dispositivos electrónicos (como las computadoras) se conectan a Internet y cómo se transmiten los datos entre ellos.

Una dirección única de una computadora IP , que es conveniente para la comunicación entre computadoras. Consta de cuatro bytes, y cada byte está separado por ".": El rango de cada bit: 0~255

Las direcciones IP se dividen en cinco clases: la clase A está reservada para agencias gubernamentales, la clase B se asigna a empresas medianas, la clase C se asigna a cualquier persona que la necesite, la clase D se usa para multidifusión y la clase E se usa para experimentos Cada clase puede acomodar diferentes datos de direcciones.

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-mCNygiEv-1661734006743) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823095748320.png)]

Nombre de dominio Use el nombre de dominio (símbolo en inglés) para reemplazar ip, cada nombre de dominio se asigna a una dirección IP, por ejemplo, el nombre de dominio de Baidu www.baidu.com está vinculado a una dirección IP 14.215.177.39, para visitar Baidu: visite de acuerdo con ip

La dirección IP se puede usar para determinar con qué computadora comunicarse, la capa inferior: convertir el nombre de dominio en una dirección IP

Puerto Número de puerto, 0~65535, el número de identificación del software de aplicación con función de red, que puede especificar qué programa comunicarse con esta computadora. 0-1023 es un número de puerto reconocido, es decir, ha sido reconocido o reservado para software que será reconocido y definido; 1024-65535 es un número de puerto que no está definido públicamente, y los usuarios pueden definir las funciones de estos puertos por sí mismos.

http: puerto predeterminado: 80

https: puerto predeterminado: 443

Puerto predeterminado para mysql: 3306

Puerto: TCP: 0~65535 UDP: 0~65535

TCP es un protocolo de capa de transporte basado en flujo de bytes, confiable y orientado a la conexión; cuando TCP se comunica, antes de enviar datos, establezca una conexión con la otra parte (el protocolo TCP requiere tres sesiones (apretón de manos), mecanismo de reconocimiento de tres vías)

[Falló la transferencia de imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-UuqKDiGP-1661734006744) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823093236623.png)]

comunicación TCP

Programación de enchufes:

Socket (socket del cliente)

ServerSocket (socket del servidor (Socket))

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-qYIfgtCT-1661734006746) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823103822975.png)]

Cuando se establece la conexión, el servidor crea un objeto Socket. El cliente y el servidor ahora pueden comunicarse escribiendo y leyendo (flujo de bytes) el objeto Socket.

Conectores de flujo: TCP, orientado a la conexión

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-baAQQ8Oo-1661734006746) (D:\Feisi Training 3\Blog\My\15.Network\assets\image-20220823105048585.png)]

clase central

ServerSocket: socket del servidor, esperando la conexión del cliente

Constructor (vincular al puerto especificado)

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-exxuFu0w-1661734006747) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823105301424.png)]

método común

Al escuchar y recibir conexiones de este ServerSocket, este método se bloquea hasta que se pasa una conexión.

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-xsjn10ld-1661734006748) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823105432115.png)]

Escuche el puerto y espere la conexión del cliente. Una vez que un cliente se conecta, obtenga un socket uno a uno con el cliente.

Clase de enchufe

Hay 9 tipos de estructuras de socket Aquí hay 2 métodos de construcción comúnmente utilizados:

Método de construcción ilustrar
Socket (anfitrión de cadena, puerto int) Iniciar una solicitud de conexión al puerto puerto del host host
[Socket](mk:@MSITStore:C:\DOCUME 1\ADMINI 1\LOCALS~1\Temp\Rar DI a 0.501 % 5 b Java 参考下载 DIa0.501\%5bJava参考下载%5d.JDK_API_1_6_zh_CN.CHM::/java/net/Socket .html#Socket(java.lang.String, int, java.netAddress, int)) MSITStore:C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\RarD I a 0.501%5 b Documento de referencia de Java DIa0.501%5b Documento de referencia de Java%5d.JDK_API_1_6_zh_CN.CHM::/java/lang/String.html) host, int port, InetAddress localAddr, int localPort ) Inicie una solicitud de conexión al puerto del host host, la computadora que inicia la solicitud es localAddr y el puerto es localPort

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-glLPeIhM-1661734006749) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823105552852.png)]

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-9pNoMVQy-1661734006750) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823110444218.png)]

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-YxEWLvqD-1661734006751) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823110559349.png)]

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo de enlace antirrobo, se recomienda guardar la imagen y cargarla directamente (img-U8Mz4jxd-1661734006752) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823110626378.png)]

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-CqcNULqa-1661734006752) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823110637452.png)]

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-ZybEEgov-1661734006753) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823110637452.png)]

Pasos de comunicación TCP

Terminal de servicio

1 :) Crear un ServerSocket

2 :) Llame a accept() y espere hasta que el cliente se conecte

3 :) Obtenga el objeto Socket del cliente, llame a getInputStream() getOutputStream() para obtener el flujo de entrada y salida

4 :) El flujo de entrada recibe datos y el flujo de salida envía datos

5 :) cerrar recurso

cliente

1 :) Cree un Socket, solicite la dirección del servidor, el puerto y conéctese al servidor

2 :) Llame a getInputStream() getOutputStream() para obtener el flujo de entrada y salida

3 :) El flujo de salida envía datos, el flujo de entrada recibe datos,

4 :) cerrar recurso

Secuencia de inicio: inicie el servidor primero, luego inicie el cliente
programación del servidor
public class Server {
    
    

	public static void main(String[] args) {
    
    
		ServerSocket server = null;
		Socket socket = null;
		try {
    
    
			//准备服务器端用的通讯对象(套接字),指明端口号为8888
			server = new ServerSocket(8888);
			//到指定端口去阻塞监听,一旦有客户端请求发送过来,那么立即自动与客户端建立连接
			socket = server.accept();
			System.out.println("服务器端准备ok");
            
			//我要发送到客户端的内容
			String msg = "你好,我是服务器,这是我的第一次通讯,请问你收到了吗";
			OutputStream os = socket.getOutputStream();//准备输出对象
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
			bw.write(msg);
			bw.newLine();
			bw.flush();
            
			//接收客户端发送的信息
			InputStream is = socket.getInputStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(is));
			String reply = br.readLine();
			System.out.println("我是服务器,接收到信息:"+reply);
			
			br.close();
			is.close();
			bw.close();
			os.close();
			socket.close();
			server.close();
		} catch (IOException e) {
    
    
			e.printStackTrace();
		}
	}
}
programacion cliente
public class Client {
    
    

	public static void main(String[] args) {
    
    
		Socket socket = null;
		try {
    
    
			socket = new Socket("localhost", 8888);
			System.out.println("客户端准备完成");
			
			//客户端开始接受请求
			InputStream is = socket.getInputStream();
			BufferedReader br = new BufferedReader(new InputStreamReader(is));
			String msg = br.readLine();
			System.out.println("我是客户端,接收到信息:"+msg);
			
			//客户端接收到服务器端的信息之后,需要反馈信息给服务器
       	 //客户端想要反馈给服务器端的信息 
			String reply = "我是客户端,收到你的信息,这是我的反馈";
			OutputStream os = socket.getOutputStream();//准备客户端的输出流
			BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));
			bw.write(reply);
			bw.newLine();
			
			bw.flush();
			bw.close();
			os.close();
			br.close();
			is.close();
			socket.close();
		} catch (UnknownHostException e) {
    
    
			e.printStackTrace();
		} catch (IOException e) {
    
    
			e.printStackTrace();
		}
	}
}

idea establecer un programa para ejecutar varias veces

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-XOJ58gpG-1661734006754) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823114549421.png)]

[Falló la transferencia de imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-NO1RPl2d-1661734006755) (D:\Feisi Training 3\Blog\My\15.Network\assets\image-20220823114719745.png)]

[Falló la transferencia de la imagen del enlace externo, el sitio de origen puede tener un mecanismo anti-leeching, se recomienda guardar la imagen y cargarla directamente (img-Nc0x4dS6-1661734006755) (D:\Feisi Training Three\Blog\My\15.Network\assets\image-20220823114752213.png)]

comunicación UDP

cepción e) { e.printStackTrace(); } } }






#### idea设置一个程序运行多次

[外链图片转存中...(img-XOJ58gpG-1661734006754)]

[外链图片转存中...(img-NO1RPl2d-1661734006755)]

[外链图片转存中...(img-Nc0x4dS6-1661734006755)]



## UDP通信

Supongo que te gusta

Origin blog.csdn.net/m0_48895748/article/details/126577685
Recomendado
Clasificación