当我使用 TCP 发送数据时,我如何知道数据是否到达?
When I use TCP to send data how do I know if data has arrived or not?
当我使用TCP 发送数据时,write()
函数只是确保数据已复制到TCP 发送缓冲区,但如果TCP 没有成功发送数据,我怎么知道?有信号吗?或者什么?
简答:你不知道。按照惯例,远程 TCP 对等方会发送一个响应,确认您的数据。这是在传输层协议 TCP 之上构建应用层协议的第一步。
更长的答案:这个问题是更高级协议(如 HTTP、STOMP、IMAP 等)的主要动机。
but if TCP doesn't send data successfully, how do I know?
write()
系统调用可以 return -1
并设置 errno
以指示错误,但是您无法知道远程对等方已接收到多少数据,多少不是。这个问题最好由远程对等方回答。
男.
当我使用TCP 发送数据时,write()
函数只是确保数据已复制到TCP 发送缓冲区,但如果TCP 没有成功发送数据,我怎么知道?有信号吗?或者什么?
简答:你不知道。按照惯例,远程 TCP 对等方会发送一个响应,确认您的数据。这是在传输层协议 TCP 之上构建应用层协议的第一步。
更长的答案:这个问题是更高级协议(如 HTTP、STOMP、IMAP 等)的主要动机。
but if TCP doesn't send data successfully, how do I know?
write()
系统调用可以 return -1
并设置 errno
以指示错误,但是您无法知道远程对等方已接收到多少数据,多少不是。这个问题最好由远程对等方回答。
男.