1

我正在向 lg iptv 发送一些命令。一些命令,如:

Current temperature (Command: d n)
Checks the inside temperature.
Transmission
[d][n][ ][Set ID][ ][Data][Cr]
Data FF: Check the status
Acknowledgement
[n][ ][Set ID][ ][OK/NG][Data][x]
* Temperature is displayed as a hexadecimal value.

我正在使用这行代码创建一个 tcp 套接字:

Socket client = new Socket(AddressFamily.InterNetwork,
                    SocketType.Stream, ProtocolType.Tcp);

我连接并发送一些命令。他们工作正常,但我无法收到这些代码行的确认:

data = data + "\r";
byte[] bytes = new byte[1024];
byte[] msg = Encoding.ASCII.GetBytes(data);
int bytesSent = user.Send(msg);
user.ReceiveTimeout = 2000;
int bytesReceived = user.Receive(bytes);
data = Encoding.ASCII.GetString(msg, 0, bytesReceived);

我使用了这个 msdn 的例子,但又没有收到任何东西。 https://msdn.microsoft.com/en-us/library/bew39x2a(v=vs.110).aspx

有什么方法可以接收到那个确认吗?我只能写客户端和服务器端在那台电视里。

4

1 回答 1

0

无法接收 ack。因为它没有暴露给应用程序级别。TCP 协议将不断重新发送数据包,直到收到成功的 ACK。

于 2016-10-03T09:01:13.287 回答