hdh

Results 8 comments of hdh

我看那个sndwnd不是对 client tcp 监听 socket的,是作用于kcp的udp 的。我是想设置 tun client tcp 监听的SO_RCVBUF,不知道有没有办法设置。

我理listen 是指定 监听 "host:port",及提供服务的tcp 端口;而我想指定 udp数据包发送的网卡(假设我 当前机器有2块网卡 ,Wifi连接 + LAN以太网有线 ), kcptun 工作时,我想 指定udp client 用我指定的网络接口(某个本机ip对应的网卡)发出udp数据包。不知道我表达清楚了没有。话句话说,listen 参数后面的host ,也会用于绑定 udp client 的创建吗。

xtaci,你理解我的意思太好了。大多数编程语言操做 socket client 的时候都能 指定网络接口地址的,我对go不熟悉,所以不知道go 写udp client的时候 是否有办法。java netty 大概像下面这样就可以了: Bootstrap b = new Bootstrap(); b.group(group).channel(NioDatagramChannel.class).handler(clientHandler); 。。。 Channel ch = b.bind(“192.168.1.100”, 0).sync().channel();//绑定特定的本地网卡地址 这样 ch 写数据时,数据只会从192.168.1.100 网卡发出。 你方便的时候看看go 的udp client 创建的时候,有没有类似的...

嗯,你说的是另一个思路,但这依赖docker,把事情搞得有点复杂。 go 在向网络写数据的时候,应该是可以指定网卡的,你参见一下这个人 发送http的需求,希望参考有帮助 https://www.jb51.cc/go/191313.html

嗯,很多网络工具都提供类似的参数设定,如ping 命令的-s (src card) ,iperf的-B (-bind) 等。这个特性还是很有用的。谢谢,我有空也看看go 语言。

xtaci ,我大致看了kcptun的代码,要实现这个功能,是不是要改 kcp-go的代码实现?

> @hedahong Can you share your patch? Thanks! func dialAndBindUdp(config *Config, block kcp.BlockCrypt) (*kcp.UDPSession, error) { udpaddr, err := net.ResolveUDPAddr("udp", config.BindUDP) if err != nil { return nil, errors.WithStack(err) }...