用goland语言写一个TCPServer服务
时间: 2023-02-08 17:42:12 浏览: 134
从零开始Go语言-GoLand(编译器)-Windows(平台)
好的,下面是在 Go 语言中创建一个 TCP 服务器的示例代码:
```
package main
import (
"bufio"
"fmt"
"net"
"os"
"strings"
)
func main() {
arguments := os.Args
if len(arguments) == 1 {
fmt.Println("Please provide a host:port string")
return
}
CONNECT := arguments[1]
c, err := net.Dial("tcp", CONNECT)
if err != nil {
fmt.Println(err)
return
}
for {
reader := bufio.NewReader(os.Stdin)
fmt.Print(">> ")
text, _ := reader.ReadString('\n')
fmt.Fprintf(c, text+"\n")
message, _ := bufio.NewReader(c).ReadString('\n')
fmt.Print("->: " + message)
if strings.TrimSpace(string(text)) == "STOP" {
fmt.Println("TCP client exiting...")
return
}
}
}
```
这段代码会创建一个客户端,并连接到给定的主机和端口。然后它会不断地从标准输入读取输入,将输入发送到服务器,并打印出服务器发回的响应。如果输入为 "STOP",客户端就会停止并退出。
如果你想要创建一个服务器,你可以使用如下代码:
```
package main
import (
"bufio"
"fmt"
"net"
"strings"
)
func main() {
fmt.Println("Launching server...")
ln, err := net.Listen("tcp", ":8080")
if err != nil {
fmt.Println(err)
return
}
defer ln.Close()
conn, err := ln.Accept()
if err != nil {
fmt.Println(err)
return
}
for {
message, err := bufio.NewReader(conn).ReadString('\n')
if err != nil {
fmt.Println("Connection closed:", err
阅读全文