如何在 Delphi 10.4中重置套接字错误#10054

5hcedyr0  于 2023-01-17  发布在  其他
关注(0)|答案(1)|浏览(353)

我们正在使用TCPIP连接。gPinstamper1ThreadComponent:= TIDThreadComponent.Create()启动。当连接丢失(电缆未连接)时,套接字错误#10054出现。此时线程也已停止。如何重置错误(再次连接电缆后)以及如何重新启动线程。
我希望你能帮我,
致上最好的问候,Johannes
重新启动线程,但总是遇到错误。

vybvopom

vybvopom1#

你不能只重置套接字错误。10054是一个致命错误,连接是死的。你必须完全关闭套接字并创建一个新的。假设你使用的是TIdTCPClient,只需Disconnect()它,Clear()它的InputBuffer任何未读的数据,并重新-Connect()它。
线程一旦终止就不能重新启动。必须关闭它并启动一个新线程。对于TIdThreadComponent,这意味着调用它的Stop()Start()方法,或者将它的Active属性切换为False,然后再切换回True
对于您所尝试的,我建议将TIdThreadComponent设置为Loop=True,其中每个循环迭代连接TCP客户机,完成其工作,然后断开连接,并进行适当的错误处理以防止线程终止。

相关问题