我有时收到已收到的数据包(我使用嗅探器和系统确认它们).现在我读取所有数据(直到套接字超时),然后发送新请求,但这很难看.我正在考虑使用序列号,但我没有在Socket接口中找到它.有线索吗?
不,你没有.如果接收TCP堆栈错过了一个数据包,它会重新请求它,但是它不能将原始数据包传递给你,因为它错过了它.如果它收到它已收到的数据包,它将丢弃它.
TCP将按发送顺序传送所有发送的字节.没有别的(好吧,除了断开连接的一些边缘情况).
还有其他事情正在发生.
编辑:
为了清楚起见,我在谈论通过套接字的InputStream传递给应用程序的字节.线路上发生的事情在很大程度上是无关紧要的,除非你有一些可怕的网络重传问题,你正试图调查.如果接收堆栈确实获得了重复数据包,它将确认它,因为如果没有,那么发送方将再次重新发送它.
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |