为了账号安全,请及时绑定邮箱和手机立即绑定

如何用Go语言创建客户端服务器?

如何用Go语言创建客户端服务器?

Go
紫衣仙女 2021-05-20 18:15:04
我是新手,我正在尝试使用go语言准备客户端服务器并尝试编写代码,但是没有给出任何输出。它没有发出任何错误,只是在听。请有人帮助我,我想使用go创建身份验证系统,其中服务器使用用户名密码对客户端进行身份验证。服务器 :package mainimport (        "fmt"        "net")func main() {        service := "0.0.0.0:8080"        tcpAddr, err := net.ResolveTCPAddr("tcp", service)        checkError(err)        listener, err := net.ListenTCP("tcp", tcpAddr)        checkError(err)        for {                conn, err := listener.Accept()                //fmt.Println("Server listerning")                _, err = conn.Read([]byte("HEAD"))                if err != nil {                        conn.Close()                }                if err != nil {                        continue                }        }}func checkError(err error) {        if err != nil {                fmt.Println("Fatal error ", err.Error())        }}客户 :package mainimport (        "bufio"        "fmt"        "net"        "os"        "strings")func main() {        if len(os.Args) != 2 {                fmt.Println("Usage: ", os.Args[0], "host")                os.Exit(1)        }        host := os.Args[1]        conn, err := net.Dial("tcp", host+":8080")        checkError(err)        _, err = conn.Write([]byte("HEAD"))        reader := bufio.NewReader(os.Stdin)        for {                line, err := reader.ReadString('\n')                ftm.Println(err)                line = strings.TrimRight(line, " \t\r\n")                if err != nil {                        conn.Close()                        break                }        }}func checkError(err error) {        if err != nil {                fmt.Println("Fatal error ", err.Error())        }}
查看完整描述

2 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

我不确定您是否需要解析您的地址才能收听。

您应该能够做到这一点:

listener, err := net.Listen("tcp", ":8080")

而且您似乎对接收的字节服务器端不做任何事情(丢弃的结果Read),这解释了为什么您认为自己什么也没收到。

请注意,您的代码一次只能处理一个连接。您应该在新的goroutine中处理每个打开的连接。

这是相关问题中通过TCP进行客户端-服务器通信示例


查看完整回答
反对 回复 2021-05-24
  • 2 回答
  • 0 关注
  • 224 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信