阅读背景:

golang 实现tcp server端和client端,并计算RTT时间

来源:互联网 

server端代码:

package main

import (
	"fmt"
	"net"
	"log"
	"os"
)

func main() {
	addr := "0.0.0.0:8787"
	tcpAddr, err := net.ResolveTCPAddr("tcp",addr)
	if err != nil {
			log.Fatalf("net.ResovleTCPAddr fail:%s", addr)   //等价于print err后,再os.Exit(1)
	}

	listener, err := net.ListenTCP("tcp", tcpAddr)
	if err != nil {
			log.Fatalf("listen %s fail: %s", addr, err)
	}else {

			log.Println("rpc listening", addr)
	}

	for {
			conn, err := listener.Accept()
			if err != nil {
					log.Println("listener.Accept error:", err)
					continue
			}

			go handle_Client(conn)
	}
}


func handle_Client(conn net.Conn) {
	defer conn.Close()

	var write_buffer []byte = []byte("ok")
	read_buffer := make([]byte, 128)

	n, err1 := conn.Read(read_buffer)
	if err1 != nil {
			fmt.Println("ser Read failed:", err1)
			os.Exit(1)
	}
	
	m, err2 := conn.Write(write_buffer)
	if err2 != nil {
			fmt.Println("ser send error:", err2)
			os.Exit(1)
	}

	fmt.Println("ser read cli send data count:", n, "msg:", string(read_buffer))
	fmt.Println("ser send data to cli count:", m, "msg:", string(write_buffer))
	
	fmt.Println("********one connetion end*********")
}package main

import (
	



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: