(go socket) Go语言中的Socket编程详解
Socket编程是网络编程的一部分,在Go语言中也提供了Socket的编程接口。Socket(套接字)是计算机与计算机之间进行通信的一种约定或者说一种方式,它是计算机之间进行通信的基础,也是网络编程的基础。以下是使用Go语言实现Socket编程的详细开发流程:
服务端:
package main
import (
"net"
"log"
"bufio"
"fmt"
)
func main() {
listener, err := net.Listen("tcp", ":8080") // 在本地的8080端口启动监听
if err != nil {
log.Fatal(err)
}
for {
conn, err := listener.Accept() // 接受一个客户端连接
if err != nil {
log.Fatal(err)
}
go handleConn(conn) // 启动一个goroutine处理连接
}
}
func handleConn(conn net.Conn) {
defer conn.Close()
r := bufio.NewReader(conn)
for {
msg, err := r.ReadString('\n')
if err != nil {
return
}
fmt.Println("Received: ", msg)
conn.Write([]byte("Received: " + msg))
}
}
客户端:
package main
import (
"net"
"log"
"bufio"
"fmt"
)
func main() {
conn, err := net.Dial("tcp", "localhost:8080") // 连接到本地的8080端口
if err != nil {
log.Fatal(err)
}
for {
conn.Write([]byte("Hello Server\n"))
message, _ := bufio.NewReader(conn).ReadString('\n')
fmt.Print("Server Message: " + message)
}
}
在以上代码中,服务端使用net.Listen
函数在本地的8080端口进行监听,然后使用listener.Accept()
函数接受客户端的连接请求,接受到连接请求后,启动一个goroutine来处理这个连接。
客户端使用net.Dial
函数连接到服务端的8080端口,然后向服务端发送消息,并等待服务端的回复。
这就是一个基础的Socket编程的例子,在实际应用中,根据需求会更复杂。
pclm50是什么手机 关于PCLM50设备开发过程和需求分析 全网首发(图文详解1)
休眠和睡眠有哪些区别 标题:Windows下的休眠和睡眠模式区别 全网首发(图文详解1)