从TCP套接字接收确认

时间:2016-10-03 08:37:16

标签: c# sockets tcp network-programming iptv

我正在向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);

我连接并发送一些命令。 他们工作正常,但我不能用这些代码行接收Ack:

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

有没有办法收到那个确认? 我只能写客户端,服务器端就在那个电视里。

1 个答案:

答案 0 :(得分:0)

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