在戈兰,网络协议被非常严密地封存了; 我们不需要一系列操作的杂摊, 比如沙克特,捆绑,听,听,接收,像任何其他语言一样, 来开发一个Socket服务器, 所以通过使用你在戈兰的网包连接起来很简单。
在此提供基于 Socket 的最基本服务器版本 :
复制代码代码如下:
package main
import (
"fmt"
"net"
"log"
"os"
)
func main() {
创建套接字和在端口监听
netListen, err := net.Listen("tcp", "localhost:1024")
CheckError(err)
defer netListen.Close()
Log("Waiting for clients")
for {
conn, err := netListen.Accept()
if err != nil {
continue
}
Log(conn.RemoteAddr().String(), " tcp connect success")
handleConnection(conn)
}
}
//处理连接
func handleConnection(conn net.Conn) {
buffer := make([]byte, 2048)
for {
n, err := conn.Read(buffer)
if err != nil {
Log(conn.RemoteAddr().String(), " connection error: ", err)
return
}
Log(conn.RemoteAddr().String(), "receive data string:n", string(buffer[:n]))
}
}
func Log(v ...interface{}) {
log.Println(v...)
}
func CheckError(err error) {
if err != nil {
fmt.Fprintf(os.Stderr, "Fatal error: %s", err.Error())
os.Exit(1)
}
}
为了消除五行错误鸡蛋不适的十行Go代码, 您可以观察到服务器想要建构和接受Socket, 其基本程序如下:
复制代码代码如下:
netListen, err := net.Listen("tcp", "localhost:1024")
conn, err := netListen.Accept()
n, err := conn.Read(buffer)
这些是Go语言中使用 Socket 构建服务器与客户互动的示例。 请更密切地关注 html 中文网页上的其他相关项目!
本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/13006.html。