为了账号安全,请及时绑定邮箱和手机立即绑定

golang :来自 ioutil.ReadAll() 的网络响应为空,连接由对等方重置

golang :来自 ioutil.ReadAll() 的网络响应为空,连接由对等方重置

Go
慕标琳琳 2021-07-08 18:53:54
我正在尝试测试从设备仿真器执行单个寄存器的简单 TCP MODBUS 读取。运行代码时,它显示 0 字节的响应,我收到消息“对等方重置连接”。关于为什么它不起作用的任何想法?更新,我的请求不正确,正确的 MODBUS TCP 轮询代码是:package mainimport (    "fmt"    "net")// TCP MODBUS clientfunc main() {    conn, err := net.Dial("tcp", "192.168.98.114:502")    if err != nil {        fmt.Println(err)    }    numRegs := 1    # make a MODBUS TCP request (be careful, the format is different to MODBUS serial)    request := []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x01, 0x00, 0x01}    n, err := conn.Write(request)    if err != nil {        fmt.Println(err)    }    expectedResponseLen := 5 + 2 * numRegs    response := make([]byte, expectedResponseLen)    n, err = conn.Read(response)    conn.Close()    if err != nil {        fmt.Println(err)    }    for i := 0; i < n; i++ {        fmt.Printf("%02x ", response[i])    }    fmt.Println("\n")}
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 440 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号