Ir lenguaje de programación --- basado en UDP Socket

idioma Ir - basado en UDP programación de sockets

Descripción del blog

La información en el artículo de que a través de Internet y organizar conclusión personal, lo que significa que la experiencia de aprendizaje individual y resumen, ¿y si la infracción, póngase en contacto conmigo para borrar, gracias!

UDP Introducción

protocolo UDP (Protocolo de datagramas de usuario) es el nombre chino del Protocolo de datagramas de usuario, es la OSI (Open System Interconnection, interconexión de sistemas abiertos) modelo de referencia de un conexión de protocolo de capa de transporte, sin establecer una conexión y datos pueden ser transmitidos directamente recepción, son poco fiables, sin sincronización de la comunicación, pero el protocolo UDP en tiempo real es mejor, que se utiliza generalmente para los campos relacionados con el vídeo en directo.

implementación en el lado del servicio

package main

import (
	"fmt"
	"net"
)

func main(){
	//监听udp
	listen,err := net.ListenUDP("udp",&net.UDPAddr{
		IP:net.IPv4(0,0,0,0),
		Port: 1021,
	})
	if err != nil {
		fmt.Println("监听失败,err:",err)
		return
	}

	//关闭连接
	defer listen.Close()

	for {
		var data [1024]byte
		//读取
		n, addr ,err := listen.ReadFromUDP(data[:])
		if err != nil{
			fmt.Println("读取失败,err:",err)
			continue
		}
		fmt.Printf("接收的内容是:%v,来自地址:%v,字节数量:%v\n",string(data[:n]), addr, n)
		//发送数据
		_, err  = listen.WriteToUDP(data[:n],addr)
		if err != nil{
			fmt.Println("发送失败,err:",err)
			continue
		}
	}

}

implementación del cliente

package main

import (
	"fmt"
	"net"
)

func main(){
	socket, err := net.DialUDP("udp",nil,&net.UDPAddr{
		IP:  net.IPv4(0,0,0,0) ,
		Port: 1021,
	})
	if err != nil{
		fmt.Println("连接失败,err:",err)
		return
	}

	defer socket.Close();

	sendData := []byte("你好,服务器")
	//发送数据
	_, err = socket.Write(sendData)
	if err != nil{
		fmt.Println("发送失败,err:",err)
		return
	}
	//接受数据
	data := make([]byte,4096)
	n, remoteAddr, err := socket.ReadFromUDP(data)
	if err != nil{
		fmt.Println("接受失败,err:",err)
		return
	}
	fmt.Printf("发送的信息:%v,目标地址:%v,字节数量:%v\n",string(data[:n]),remoteAddr,n)
}

Compilar la prueba

usando Goland

En primer lugar ejecutar el servidor, y luego ejecutar el cliente

Aquí Insertar imagen Descripción

Ejecutar el cliente para enviar mensajes de forma predeterminada

Aquí Insertar imagen Descripción

servidor recibe

Aquí Insertar imagen Descripción

gracias

universal Network

Y un trabajador posee

Ha publicado 199 artículos originales · alabanza 531 won · vistas 30000 +

Supongo que te gusta

Origin blog.csdn.net/qq_45163122/article/details/105119435
Recomendado
Clasificación