go基础四(tcp通信之socket)

服务端

package main

import (
	"fmt"
	"net"
)

func main() {
	testSocketServer()
}
func testSocketServer() {
	//1.创建服务器地址
	addr, _ := net.ResolveTCPAddr("tcp4", "localhost:8899")
	//2.创建监听
	lis, _ := net.ListenTCP("tcp4", addr)
	//3.通过监听器获取客户端传过来的数据
	fmt.Println("服务器端已启动等待客户端连接")

	//无限循环来接收数据
	for {
		conn, _ := lis.Accept()
		//4.转换数据
		//使用协程,支持高并发
		go func() {
			b := make([]byte, 1024)
			n, _ := conn.Read(b)
			fmt.Println("获取到客户端的数据为", string(b[:n]))
			conn.Write([]byte("服务器已经收到您发的消息"))
			conn.Close()
		}()

	}

	//关闭连接
	//

}

客户端

package main

import (
	"fmt"
	"net"
	"strconv"
)

func main() {
	testSocketClient()
}

func testSocketClient() {
	//1.创建服务端地址
	addr, _ := net.ResolveTCPAddr("tcp4", "localhost:8899")


	for i := 0; i < 10; i++ {
	fmt.Println("客户端开始发送数据")
	//3.发送数据
		//2.创建连接
		conn, _ := net.DialTCP("tcp4", nil, addr)
		fmt.Println("客服端发送测试数据:你好啊"+strconv.Itoa(i))
		conn.Write([]byte("客服端发送测试数据:你好啊"+strconv.Itoa(i)))
        //获取服务端返回数据
		b := make([]byte, 1024)
		n, _ := conn.Read(b)
		fmt.Println("获取到服务端的数据为", string(b[:n]))
		//4.关闭连接
		conn.Close()
	}




}

猜你喜欢

转载自blog.csdn.net/figo0423/article/details/126413284