Este es un buen tutorial para principiantes que desean familiarizarse con el paquete GO Net y cómo manejar las solicitudes.
Empezando
Aunque el tutorial es muy amigable para principiantes, recomendamos tener los conceptos básicos de trabajar con el idioma Go en cuestión.
Comprender cómo trabajar con los paquetes GO también es muy beneficioso.
Paquete de red de Golang
El paquete neto es parte de la biblioteca estándar GO. Se utiliza para entregar una interfaz portátil para trabajar con operaciones de E/S de red. Esto incluye TCP/IP, UDP, DNS y Sockets de dominio Unix.
Usaremos este paquete para crear un servidor TCP.
Construyendo un servidor TCP simple
Entremos ahora en el código y aprendamos a construir un servidor TCP. Comience por crear un archivo Go para escribir su código:
servidor MKDIR TCPEdite el archivo con su editor de texto de elección e ingrese las líneas a continuación:
paquete principalLas líneas anteriores definen el paquete como un paquete independiente e importan los paquetes requeridos.
El siguiente paso es definir los parámetros para nuestro servidor. Podemos definirlos como variables globales como:
const (El siguiente paso es escuchar las conexiones entrantes. Podemos hacer esto usando la red.Método de escucha. La sintaxis de la función es como se muestra:
FUNC Listen (red, cadena de direcciones) (oyente, error)Toma el tipo de conexión (como TCP, TCP4, TCP6, UNIX o UnixPacket), el host y el puerto de conexión. La función devolverá una conexión de escucha en la dirección especificada.
Un código de ejemplo es como se muestra:
Escucha, err: = net.Escuchar (escriba, host+":"+puerto)Verificamos si el oyente encuentra algún error, si es cierto, registra el mensaje de error y existe con un código de estado de 1.
También necesitamos cerrar el oyente después de que termine el servidor. Podemos hacer esto utilizando la palabra clave de diferir y el método de cierre
escuchar.Cerca()El siguiente paso es escuchar continuamente las conexiones. Podemos hacer esto usando un bucle para:
paraPara manejar cualquier solicitud entrante, podemos crear una función como:
FUNC HandleInComingRequest (Conn Net.Conn)En el ejemplo anterior, definimos una función que toma conn de type net.Conn struct como parámetro.
Luego definimos un nuevo búfer para almacenar los datos entrantes del tamaño 1024. El siguiente bloque lee la hora actual usando la hora.Ahora () paquete.
Usando el método de escritura, podemos escribir la hora y una cadena al cliente. Finalmente, configuramos la Conn.Cerrar () para cerrar la conexión.
El código fuente completo es como se muestra:
paquete principalCompilar y ejecutar servidor
Una vez completado, guarde el archivo y ejecute el comando a continuación para compilar el oyente en un binario:
Ir a construir servidor.irA continuación, ejecute el servidor como:
./servidor.exeEl comando anterior debe ejecutar el servidor TCP y podemos hacer conexiones a él.
Prueba del servidor TCP
Para probar el servidor TCP, puede usar NetCAT usando el comando:
NC Localhost 9001A continuación, envíe un mensaje como:
Hola!El servidor debe responder con una retroceder y la fecha y la hora actuales.
Hola de nuevo!Conclusión
Y con eso, hemos concluido nuestro tutorial. Esta guía le presenta los conceptos básicos de trabajar con el paquete neto creando un servidor TCP.
Gracias por leer!