gpt4 book ai didi

delphi - 如何检测服务器是否使用 TIdTCPClient 响应请求?

转载 作者:行者123 更新时间:2023-12-03 18:41:30 24 4
gpt4 key购买 nike

我想知道是否有办法以某种方式 ping 或发送一个空请求,以便使用 TIdTCPClient 查看来自给定服务器的响应(以及响应时间)。在德尔福 - 我尝试的是这样的:

TCPClient := TIdTCPClient.Create(nil);
responseStream := TMemoryStream.Create;
TCPClient.Host := someHost;
TCPClient.Port := somePort;
TCPClient.Connect;
startTime := Ticks;
TCPClient.IOHandler.ReadStream(responseStream, -1, True);
respTime := GetTickDiff(startTime, Ticks);
TCPClient.Disconnect;

在这个伪代码中,我成功连接到 someHost:somePort 但显然我没有正确使用 TCPClient.IOHandler.ReadStream - 有人可以帮我修复我的代码(我真的必须使用 TIdTCPClient)或者告诉我如何替换不能正常工作的行吗?

最佳答案

TCP 中没有空请求(UDP 中有)。如果要向 TCP 服务器发送请求,则请求中必须包含一些数据。此外,您连接到的特定类型的服务器决定了您可以发送给它的请求类型,您不能只是连接并发送您想要的任何内容(嗯,您可以,但这并不能保证您会得到响应)。

您的代码当前的工作方式,它只能从向客户端发送初始问候语的服务器读取数据。大多数服务器不这样做。您从给定服务器获得响应的能力取决于该服务器实现的特定协议(protocol)(HTTP vs FTP vs POP3 vs SMTP vs IMAP vs ...),因为它是决定请求和响应如何工作的协议(protocol)。

因此,就您的问题而言,它无法回答,因为它太笼统了,可能性太多了。你需要缩小范围。

关于delphi - 如何检测服务器是否使用 TIdTCPClient 响应请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23835755/

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