gpt4 book ai didi

networking - 丢弃 TCP 连接,这正常吗?

转载 作者:可可西里 更新时间:2023-11-01 02:55:04 26 4
gpt4 key购买 nike

我在我的本地机器上设置了这个简单的脚本:

#!/usr/bin/python

import socket
from datetime import datetime

print "Connecting to test server"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("mydomain.com", 9090))

start = datetime.now()

totalbytes = 0

try:
while True:
data = s.recv(512)
totalbytes += len(data)
print "Got %d bytes of data" % (len(data))
except Exception as e:
print "ERROR", e
pass

end = datetime.now()

print "Lasted for", end - start, "with a total of", totalbytes/1000/1000, "megabytes"

这个脚本在我的本地服务器上(在同一个网络上运行,但请注意,我在这里通过外部 ip 地址)

#!/usr/bin/python

import socket
from datetime import datetime

print "Listening for test client"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("192.168.2.100", 9090))
s.listen(5)

start = datetime.now()

try:
while True:
clientsocket, address = s.accept()

# Start sending infinite data until I can't
while True:
clientsocket.send("*" * 511 + "+")
except:
pass

end = datetime.now()

print "This lasted", end - start

关于我的问题:连接在几分钟后断开。例如,上次运行此脚本时,服务器刚刚停止并报告:“This lasted 0:02:27.517715”,在此之前客户端在断开连接之前可以接收数据约 7 分钟。现在,我这几天没有做过很多网络编程,所以我不知道期望他们保持连接的时间比这长得多是否合理?一个事件的 TCP 连接可以预期存在多长时间?像这样的断开连接有多常见?

我进行这些测试是为了测试我自己的本地网络,因为我一直遇到 MSN 每小时注销一次、下载在几分钟后停止以及其他奇怪行为的问题。我的问题不是如何解决这个问题,而是我的测试结果是否合理,或者表明我的网络存在问题?

最佳答案

一个 TCP 连接可以保持多年*并传递无限量的数据。当客户端和服务器断开连接时,您从它们那里得到的错误是什么?这将是追踪问题的第一步。

[*] 理论上我会无限期地说,但我个人只观察到“年”。<​​/p>

关于networking - 丢弃 TCP 连接,这正常吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4541469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com