Go語言之進階篇TCP相互通信


1、TCP相互通信

服務端示例:

tcp_server.go

package main

import (
	"fmt"
	"net"
)

func main() {
	//監聽
	listener, err := net.Listen("tcp", "127.0.0.1:8000")
	if err != nil {
		fmt.Println("err = ", err)
		return
	}

	defer listener.Close()

	//阻塞等待用戶鏈接
	conn, err := listener.Accept()
	if err != nil {
		fmt.Println("err = ", err)
		return
	}

	//接收用戶的請求
	buf := make([]byte, 1024) //1024大小的緩沖區
	n, err1 := conn.Read(buf)
	if err1 != nil {
		fmt.Println("err1 = ", err1)
		return
	}

	fmt.Println("buf = ", string(buf[:n]))

	defer conn.Close() //關閉當前用戶鏈接
}

客戶端示例:

tcp_client.go

package main

import (
	"fmt"
	"net"
)

func main() {
	//主動連接服務器
	conn, err := net.Dial("tcp", "127.0.0.1:8000")
	if err != nil {
		fmt.Println("err = ", err)
		return
	}

	defer conn.Close()

	//發送數據
	conn.Write([]byte("are you ok?"))

}

先啟動服務端:go run tcp_server.go

D:\GoFiles\src\hello_01>go run tcp_server.go
buf =  are u ok?

再啟動客戶端:go run tcp_client.go

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM