返回顶部
首页 > 资讯 > 后端开发 > GO >Golang TCP 连接有效,但 UDP 无效
  • 499
分享到

Golang TCP 连接有效,但 UDP 无效

2024-02-06 11:02:25 499人浏览 安东尼
摘要

问题内容 我正在通过 netcat 监听 nc -lkp 1902 每当我建立 tcp 连接并尝试发送日志时,它都会起作用 timeout := 30 * time.second

问题内容

我正在通过 netcat 监听 nc -lkp 1902

每当我建立 tcp 连接并尝试发送日志时,它都会起作用

timeout := 30 * time.second
    conn, err := net.dialtimeout("tcp", "localhost:1902", timeout)
    if err != nil {
        panic("failed to connect to localhost:1902")
    }
    defer conn.close()

    f := log.ldate | log.lshortfile
    logger := log.new(conn, "example-", f)
    logger.println("this is a regular message1")
    logger.println("this is a regular message2")
    logger.println("this is a regular message3")
    logger.println("this is a regular message4")
    logger.println("this is a regular message5")
    logger.println("this is a regular message6")

输出

example-2022/11/18 technique24.Go:21: this is a regular message1
example-2022/11/18 technique24.go:22: this is a regular message2
example-2022/11/18 technique24.go:23: this is a regular message3
example-2022/11/18 technique24.go:24: this is a regular message4
example-2022/11/18 technique24.go:25: this is a regular message5
example-2022/11/18 technique24.go:26: this is a regular message6

但是每当我尝试建立 udp 连接时它都不起作用,有人可以解释为什么我的记录器上什么也没有得到吗?

timeout := 30 * time.Second
    conn, err := net.DialTimeout("udp", "localhost:1902", timeout)
    if err != nil {
        panic("Failed to connect to localhost:1902")
    }
    defer conn.Close()

    f := log.Ldate | log.Lshortfile
    logger := log.New(conn, "example-", f)
    logger.Println("This is a regular message1")
    logger.Println("This is a regular message2")
    logger.Println("This is a regular message3")
    logger.Println("This is a regular message4")
    logger.Println("This is a regular message5")
    logger.Println("This is a regular message6")

想要制作一个小poc来通过udp发送日志以减少积压,尝试首先建立tcp连接,它工作正常,但udp不起作用,有人可以解释我必须做什么才能使其工作吗? p>

正确答案


除非另有指定,否则 Netcat 默认情况下会创建 TCP 连接。对于 UDP 连接,您需要使用 netcat 的 -u 标志。来自 netcat 手册页

-u 使用 UDP 代替默认的 TCP 选项。

因此,将侦听器更改为 nc -luk 1902 应该可以解决 UDP 连接的问题。

以上就是golang TCP 连接有效,但 UDP 无效的详细内容,更多请关注编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: Golang TCP 连接有效,但 UDP 无效

本文链接: https://lsjlt.com/news/561460.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作