Golang中无法调用在Visual Studio创建的TCP服务器怎么办
Golang中无法调用在Visual Studio创建的TCP服务器怎么办
问题:我无法调用在Visual Studio中创建的TCP服务器!
TCP服务器 - 写入连接
我们可以使用标准库中的net包创建自己的TCP服务器。主要有三个步骤:(1) 监听 (2) 接受连接 (3) 对连接进行写入或读取操作。我们将使用telnet来调用我们创建的TCP服务器。Telnet使用传输控制协议(TCP)通过虚拟终端连接提供双向交互式面向文本的通信。
我的操作系统是运行macOS Sierra版本10.12.6的Macbook
我的文本编辑器是Visual Studio Code
我的终端是Mac Terminal 2.7.5
Visual Studio
package main
import (
"fmt"
"io"
"log"
"net"
)
func main() {
li, err := net.Lis
ten("tcp", ":8080")
if err != nil {
log.Fatalln(err)s
}
defer li.Close()
for {
conn, err := li.Accept()
if err != nil {
log.Println(err)
continue
}
io.WriteString(conn, "\nHello from TCP server\n")
fmt.Fprintln(conn, "How is your day?")
fmt.Fprintf(conn, "%v", "Well, I hope!")
conn.Close()
}
}
/Users/reuvenabramson/Documents/goworkspace/src/GoesToEleven/golang-web-dev-master/015_understanding-TCP-servers/01_write
Reuvens-Air:01_write reuvenabramson$ go run main.go
# command-line-arguments
./main.go:11:13: undefined: net.Lis
./main.go:13:2: undefined: ten
Reuvens-Air:01_write reuvenabramson$
我的终端
Reuvens-Air:01_write reuvenabramson$ go run main.go
# command-line-arguments
./main.go:11:13: undefined: net.Lis
./main.go:13:2: undefined: ten
Reuvens-Air:01_write reuvenabramson$ nc localhost 8080
Reuvens-Air:01_write reuvenabramson$ localhost 8080
-bash: localhost: command not found
Reuvens-Air:01_write reuvenabramson$
Chrome浏览器
Localhost: 8080
无法访问此网站
localhost拒绝连接。
- 您是不是要找http://localhost-8080.com/?
- 在Google中搜索localhost 8080
ERR_CONNECTION_REFUSED
更多关于Golang中无法调用在Visual Studio创建的TCP服务器怎么办的实战教程也可以访问 https://www.itying.com/category-94-b0.html
诺伯特你好!我是鲁文,感谢你的帮助,方法确实有效。
非常感激!!
此致
更多关于Golang中无法调用在Visual Studio创建的TCP服务器怎么办的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
请尝试阅读错误信息并检查您的代码。
net.Lis 和 ten 对编译器来说都是未知的。请删除它们之间的换行符,使其成为 net.Listen。
你的代码中有语法错误,导致编译失败。问题出现在第11行的net.Lis和13行的ten,这应该是net.Listen`被错误地换行分割了。
以下是修正后的代码:
package main
import (
"fmt"
"io"
"log"
"net"
)
func main() {
li, err := net.Listen("tcp", ":8080")
if err != nil {
log.Fatalln(err)
}
defer li.Close()
for {
conn, err := li.Accept()
if err != nil {
log.Println(err)
continue
}
io.WriteString(conn, "\nHello from TCP server\n")
fmt.Fprintln(conn, "How is your day?")
fmt.Fprintf(conn, "%v", "Well, I hope!")
conn.Close()
}
}
修正后,在终端中运行:
go run main.go
服务器将在8080端口启动。然后使用telnet或nc命令测试连接:
nc localhost 8080
你应该能看到服务器返回的消息:
Hello from TCP server
How is your day?
Well, I hope!
注意:Chrome浏览器无法直接访问这个TCP服务器,因为这是一个原始的TCP服务而不是HTTP服务器。浏览器使用HTTP协议,而你的代码实现的是TCP层面的通信。

