当前位置:首页 >专题 >Go TCP/UDP 网络编程与连接治理工程实践专题
Go TCP/UDP 网络编程与连接
Go TCP/UDP 网络编程与连接治理工程实践专题
从 net.Dial、TCP/UDP 到 DNS、超时、拆包与 Unix Socket
这个专题面向需要构建网络服务、网关、采集器或自定义协议的 Go 开发者,围绕标准库 net 的 Dial、Listen、Accept、Conn 和 PacketConn,串起 TCP/UDP 通信、域名解析、地址建模、超时、连接保活与协议分帧。重点是把能跑通的示例提升为可诊断、可关闭、可扩展的连接治理流程。
常见问题
上线前检查连接、协议和关闭边界
TCP 为什么需要自己处理拆包和粘包?
TCP 提供有序可靠的字节流,不保留应用层消息边界;服务端需要用定长、长度前缀或分隔符协议自行组帧。
UDP 什么时候比 TCP 更合适?
当业务可以容忍丢包或自行处理重传,并且更关注低延迟、广播或独立数据报时可评估 UDP;可靠性、顺序和拥塞控制需要由应用补足。
网络连接为什么必须设置超时?
没有 deadline 或 context 的网络读写可能长期阻塞,连接池、goroutine 和文件描述符会持续占用;应按拨号、读、写和空闲连接分别设定边界。
关闭 TCP 服务时如何退出阻塞的 Accept?
监听器应由生命周期管理方持有,在收到退出信号后关闭 listener,并让 Accept 返回可识别的关闭错误;后台连接和任务还需单独等待收口。
相关专题
继续查看相近方向内容
查看更多
最新文章
-
- Redis 8.8 array 数据结构适合哪些索引式数据场景
- 6秒前 475浏览
-
- Go reflect.Value.Elem 之后如何避免对 nil 指针调用
- 11秒前 403浏览
-
- MySQL 时区转换后日期跨天怎么正确统计
- 47秒前 168浏览
-
- PHP curl_multi 批量请求怎么判断单个句柄完成
- 1分钟前 223浏览
-
- Go utf8.DecodeRuneInString 遇到非法字节时会返回什么
- 1分钟前 109浏览
-
- Go reflect.Value.IsZero 和零值比较有什么边界
- 1分钟前 197浏览
-
- MySQL collation 不一致导致 JOIN 报错怎么统一
- 1分钟前 446浏览

