Ir a la comunicación de red de idiomas --- programación TCP para comunicación continua multiusuario

Lado del servidor:

paquete main 

import ( 
	"fmt" 
	"net" 
) 

func main () { 
	// Crear 
	escucha de monitoreo , err: = net.Listen ("tcp", "localhost: 8080") 
	if err! = nil { 
		fmt.Println (" Error al establecer la supervisión tcp, err = ", err) 
		return 
	} 

	diferir func () { 
		listener.Close () 
		fmt.Println (" El servidor está cerrado ") 
	} () 

	fmt.Println (" Escuchando las solicitudes del cliente ") 

	para { 
		/ / Ciclo de acceso a un cliente (adquirir una conexión de línea dedicada Conn) 
		conn, _: = listener.Accept () 
		fmt.Println ("Acceso exitoso al cliente:", conn.RemoteAddr ()) 

		// Lanza el cliente conectado a la rutina concurrente para procesar 
		go func () { 
			/ * En una tarea concurrente separada con el cliente actual IO * / 
			for { 
				// En la conexión de línea dedicada con Cliente específico IO 
				buffer: = make ([] byte, 1024)
				n, _: = conn.Read (buffer)
				msg: = string (buffer [: n]) 
				fmt.Printf ("Cliente% v:% s \ n", conn.RemoteAddr (), msg) 

				// Responde al mensaje 
				conn.Write ([] byte ("read Mensaje: "+ msg)) 

				// Determinar si el cliente desea divorciarse 
				si msg ==" salir "{ 
					// Desconectarse del cliente 
					conn.Close () 
					break 
				} 

			} 
		} () 
	} 

}

  lado del cliente:

paquete main 

import ( 
	"fmt" 
	"net" 
) 

func main () { 
	// Marque usando el protocolo udp, dirección remota 127.0.0.1:8080 
	conn, _: = net.Dial ("tcp", "127.0.0.1:8080" ) 

	// Cierre la conexión antes de que el programa salga y libere el io resource 
	defer func () { 
		conn.Close () 
		fmt.Println ("El cliente ha salido") 
	} () 

	// Cree un búfer para recibir mensajes 
	: = make ([ ] byte, 1024) 
	// Texto del mensaje que debe enviar el usuario 
	var userInput string 
	para { 
		// Recibir la entrada del usuario 
		fmt.Print ("Ingrese:") 
		fmt.Scan (& userInput) 
		// Salga si el usuario ingresa exit 

		// El cliente inicia una conversación 
		conn.Write ([] byte (userInput)) 

		// Recibe el mensaje del servidor 
		n, err: = conn.Read (buffer) 
		fmt.Println (err)
		fmt.Println ("服务 端 :" + string (buffer [: n]))
		if userInput == "exit" { 
			break 
		} 
	} 
}

  

Supongo que te gusta

Origin www.cnblogs.com/yunweiqiang/p/12727600.html
Recomendado
Clasificación