c# - 从 TCP 套接字接收确认

标签 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

有什么办法可以收到那个ack吗? 我只能写客户端,服务器端在那个电视里。

最佳答案

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

关于c# - 从 TCP 套接字接收确认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39827486/

相关文章:

c# - WPF 和字符串格式化

c# - 解构 WPF 的几何对象

c# - 从 DLL 打开对话框

c# - 如何在Java中实现类似C#的语言级事件

c - 在多个线程之间共享套接字描述符

windows - Windows 如何决定将哪个设置/模板(Internet 与数据中心)应用于 TCP 连接?

c - 读取/接收线程安全 (MSG_PEEK)

c# - UDP数据传输比TCP慢

iphone - 在 iPhone 上接收图像(TCP 客户端)

tcp - 如何在 Julia 中停止 TCP 服务器?