
go语言中同时监听客户端连接和终端命令
在 go 语言中,实现一边监听新的客户端连接请求,一边处理终端输入命令需要使用并发机制。
解决方法:
示例代码:
立即学习“go语言免费学习笔记(深入)”;
package main
import (
"fmt"
"os"
)
var recvFromTerminalChan = make(chan string)
var recvFromNetChan = make(chan string)
func main() {
go readFromTerminal()
for {
select {
case str := <-recvFromTerminalChan:
go sendCommandToNet(str)
case str := <-recvFromNetChan:
go doContentFromNet(str)
}
}
}
func readFromTerminal() {
var input string
for {
fmt.Scan(&input)
fmt.Println("input content : ", input)
recvFromTerminalChan <- input
}
}
func sendCommandToNet(command string) {
fmt.Println("command : ", command)
if command == "quit" {
close(recvFromTerminalChan)
close(recvFromNetChan)
os.Exit(0)
}
content := command
recvFromNetChan <- content
}
func doContentFromNet(content string) {
fmt.Println("content from net : ", content)
}注意事项:
以上就是Go语言中如何实现同时监听客户端连接和终端命令?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号