在Golang中进行网络通信时,可以使用标准库中的”net”包来封装TCP、UDP、Unix域socket等协议的通信。下面给出示例代码来创建一个TCP客户端进行连接和发送数据。

// 引入net包
import (
    "net"
    "fmt"
)

func main() {
    // 建立连接
    conn, err := net.Dial("tcp", "127.0.0.1:8080")
    if err != nil {
        fmt.Println("连接失败:", err)
        return
    }
    defer conn.Close()
    // 发送数据
    _, err = conn.Write([]byte("Hello, server!"))
    if err != nil {
        fmt.Println("发送失败:", err)
        return
    }
    // 接收数据
    buf := make([]byte, 512)
    n, err := conn.Read(buf)
    if err != nil {
        fmt.Println("接收失败:", err)
        return
    }
    // 输出接收到的数据
    fmt.Println(string(buf[:n]))
}

上述代码中首先通过”net.Dial”函数来建立与服务器的TCP连接,其中第一个参数是协议类型,第二个参数是服务器地址和端口号;然后通过”conn.Write”函数来发送数据,该函数接收一个数据字节数组,返回发送的字节数和错误信息;最后通过”conn.Read”函数来接收数据,该函数接收一个数据字节数组,返回实际接收的字节数和错误信息。

在实际应用中,还可以使用”net.Listen”来创建一个TCP服务器等待客户端的连接请求,通过”conn.Write”和”conn.Read”来进行数据的发送与接收。