TODO:Golang语言TCP/UDP协议重用地址端口
来源:互联网 发布:蓄水池算法公式 编辑:程序博客网 时间:2024/06/03 11:37
TODO:Golang语言TCP/UDP协议重用地址端口
这是一个简单的包来解决重用地址的问题。 go net包(据我所知)不允许设置套接字选项。 这在尝试进行TCP NAT时尤其成问题,其需要在同一TCP端口上进行侦听和拨号的过程。 这个包使我有可能实现这个功能。 这是一个非常小众的用例,但也许这个软件包可以随着时间的推移变得更普遍。
此包允许从同一TCP端口侦听和拨号;不能使用同一UDP端口监听,但可以监听同一UDP端口。 这意味着设置了以下sockopts:
syscall.SO_REUSEADDR
syscall.SO_REUSEPORT
例子:
// listen on the same port.
l1, _ := reuse.Listen(“tcp”, “127.0.0.1:1234”)
l2, _ := reuse.Listen(“tcp”, “127.0.0.1:1234”)
// dial from the same port.
l1, _ := reuse.Listen(“tcp”, “127.0.0.1:1234”)
l2, _ := reuse.Listen(“tcp”, “127.0.0.1:1235”)
c1, _ := reuse.Dial(“tcp”, “127.0.0.1:1234”, “127.0.0.1:1235”)
c2, _ := reuse.Dial(“tcp”, “127.0.0.1:1234”, “127.0.0.1:1235”)
以下是完整TCP拨号例子,在Ubuntu 14.04 Sever测试通过
Server代码:
Client代码:
如果你有需要重用TCP/UDP的地址和端口的场景,可以尝试一下这个包,希望可以让你达到事半功倍的效果。
wxgzh:ludong86
- TODO:Golang语言TCP/UDP协议重用地址端口
- TCP/UDP协议常用端口号服务
- TCP端口重用[转]
- C#重用UDP端口号
- C#重用UDP端口号
- C#重用UDP端口号
- C#重用UDP端口号
- C#重用UDP端口号
- C# UDP Client 端口重用
- JAVA基础再回首(二十八)——网络编程概述、IP地址、端口号、TCP和UDP协议、Socket、UDP传输、多线程UDP聊天
- JAVA基础再回首(二十八)——网络编程概述、IP地址、端口号、TCP和UDP协议、Socket、UDP传输、多线程UDP聊天
- 端口重用 C++ (地址重用)
- 常用的协议端口号(TCP and UDP)
- IP、子网掩码、TCP和UDP协议包头、常见端口号
- golang实现简易TCP服务以及TCP和UDP协议对比
- tcp/udp端口安全
- TCP/UDP端口大全
- 常用tcp/udp端口
- python+flask
- Git SSH Key 生成步骤
- win10下IIS网站局域网无法访问的解决方法
- Wireshark 命令行捕获数据
- web.xml is missing and <failOnMissingWebXml> is set to true
- TODO:Golang语言TCP/UDP协议重用地址端口
- jquery中取消hover事件绑定
- mysql安全向导mysql_secure_installation解释
- Leetcode015--合并两个有序链表
- 十大技巧优化Android App性能
- 微信小程序登录逻辑整理
- Binder机制原理分析(Java层)
- # 极其重要的线程池 #
- html学习笔记(四)