【问题标题】:How to Simulate tcp server is not responding如何模拟 tcp 服务器没有响应
【发布时间】:2020-10-26 16:49:00
【问题描述】:

我必须用 python 语言编写代码来创建一个 tcp 服务器。不同的设备(客户端)将连接到该服务器并发送大约 1GB 的文件。 问题是,在接收到大约 500MB 的文件后,该服务器应该模拟 TCP 连接意外中断并且它没有响应带有 ACK 或 NACKS 的客户端 TCP 数据包。然后客户端将重试建立连接。有没有办法这样做??如何在 python v2.7 中模拟这种负面情况。 请帮忙!

【问题讨论】:

  • 您可以关闭并关闭连接。
  • 您是尝试在程序测试中运行此场景还是只是手动检查行为?

标签: python sockets tcp serversocket


【解决方案1】:

您需要通过将数量存储在一个变量中来检查服务器接收了多少数据,如下所示:

received = 0

# when receiving data:
data = sock.recv(2084)
received += 2084

如果此值达到所需值,您可以简单地使用关闭套接字

sock.close()

这将导致客户端出现“连接被拒绝”错误,这将迫使客户端建立新连接/将套接字重新连接到服务器。

请注意,如果您对 recv() 缓冲区使用其他值,则还需要在接收计数器中进行更改。

【讨论】:

  • 非常感谢大家的建议,我会试试这个,并会随着进度更新。
猜你喜欢
  • 2014-06-04
  • 2011-06-24
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
  • 2014-10-31
  • 2021-11-16
  • 2019-03-02
相关资源
最近更新 更多