如何使用golang发送ACK和ENQ等数据包

如何使用golang发送ACK和ENQ等数据包,go,interface,tcpserver,Go,Interface,Tcpserver,我正在编写一个到临床实验室机器的接口,它使用ASTM协议进行通信() 首先,我尝试使用golang的TCP服务器来接收数据。但无法确定如何将ACK发送回实验室机器。我是戈朗的新手。有人能建议我如何进行吗 您提供的链路中的协议用于RS232。当通过TCPIP发送数据时,它是一个流(接收器必须知道数据何时结束)。通常,当将RS232协议更改为TCPIP时,会在每条消息中添加一个标题,该标题为消息的长度(通常为两个字节),因此如果要发送ASCII ACK,请发送三个字节、两个字节的长度和一个字节的数据

我正在编写一个到临床实验室机器的接口,它使用ASTM协议进行通信()


首先,我尝试使用golang的TCP服务器来接收数据。但无法确定如何将ACK发送回实验室机器。我是戈朗的新手。有人能建议我如何进行吗

您提供的链路中的协议用于RS232。当通过TCPIP发送数据时,它是一个流(接收器必须知道数据何时结束)。通常,当将RS232协议更改为TCPIP时,会在每条消息中添加一个标题,该标题为消息的长度(通常为两个字节),因此如果要发送ASCII ACK,请发送三个字节、两个字节的长度和一个字节的数据。编写此文件时,您必须刷新缓冲区,因为对于如此小的数据包,只有在您刷新缓冲区后才会传输。

您确定
ENQ
ACK
在本上下文中指的是TCP数据包的类型吗?(ASTM E-1394似乎没有任何公开的规范)。该摘要使其看起来像是tcp上的文本协议,您只需在线路上编写这些ascii代码,但没有描述物理层或传输层应该是什么。实际上,查看该页面上的示例顺序,这些代码类似于
,等等都是ASCII字符。您只需要知道如何将它们写入网络连接吗?谢谢。这应该是我写的。还没有检查它与实际的机器集成。但是我发现了一个ruby测试代码client.putc(0x06.chr),我们已经写了很久了,这表明它只是ASCII字符。好的,那么你还有问题吗?如果是这样的话,请用一个例子来编辑这篇文章,说明你在哪里遇到了问题。很抱歉延迟了回复。像这样发送十六进制ACK效果很好。c:=&serial.Config{Name:“/dev/ttyUSB0”,波特率:9600,大小:8}conn,错误:=serial.OpenPort(c)conn.Write([]字节{0x06})