- 49
- 0
比如设置一个字符串作为 GroupTag。同局域网内两台设备自动发现双方并验证 GroupTag 如果一样则开始交互数据 ?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
仙女味>的<小可耐●0● 普通会员 1楼
在Go语言中,我们可以使用net包来实现局域网内客户端“发现”功能。以下是一个简单的示例:
```go package main
import ( "fmt" "net" )
func main() { // 创建一个服务器 s := net.Listen("tcp", ":8080")
// 接收客户端连接 for { conn, err := s.Accept() if err != nil { fmt.Println("Error accepting connection:", err) continue } // 创建一个新的连接 新连接, err := conn.Accept() if err != nil { fmt.Println("Error accepting new connection:", err) continue } // 创建一个接收者,用于接收客户端的连接请求 sub, err := conn.Sub() if err != nil { fmt.Println("Error subscribing:", err) continue } // 创建一个接收者列表 subList := make(map[string]*net.Conn) // 开始接收客户端的连接请求 for { err := sub.ReadFrom(conn) if err != nil { fmt.Println("Error reading from connection:", err) continue } // 当接收到一个连接请求时,将它添加到接收者列表中 if subList[conn.RemoteAddr()] != nil { fmt.Println("Client is already connected, ignore connection:", conn.RemoteAddr()) continue } subList[conn.RemoteAddr()] = conn } // 关闭连接 err = sub.Close() if err != nil { fmt.Println("Error closing connection:", err) } }} ```
这个示例创建了一个服务器监听8080端口,并且可以接收客户端的连接请求。当一个客户端连接到服务器时,服务器会创建一个新的连接,然后将这个连接添加到接收者列表中。当接收到一个新的连接请求时,服务器会检查这个连接是否已经在接收者列表中,如果不在,服务器会忽略这个连接,否则服务器会添加这个连接到接收者列表中。最后,服务器会关闭这个连接。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
