问题描述
我正在使用TIdTCPClient
。这似乎很简单,但是执行"Already connected"
tcpClient->Connect();
的方法。
因此,我设置了Host
,Port
和ConnectTimeout
,然后将其称为Connect()
。
我尝试使用WriteLn()
更改该错误消息,也许是解决方案,但是我可能以错误的方式使用了该错误消息。
我只想向客户端显示(可能在ShowMessage()
或TLabel
中显示),而不必向服务器显示。
解决方法
如果客户端已经连接到服务器(TIdTCPClient::Connect()
返回TIdTCPClient::Connected()
),则无法调用true
,必须先调用TIdTCPClient::Disconnect()
。
如果您要询问如何更改错误消息文本本身,它是一个本地化的字符串(RSAlreadyConnected
单元中的IdResourceStringsCore
),因此仅在需要时localize your app。
否则,您可以简单地使用try..catch
来捕获引发的EIdAlreadyConnected
异常,然后根据需要显示任意文本,例如:
try {
tcpClient->Connect();;
}
const (const EIdAlreadyConnected &) {
ShowMessage("Already connected! Please disconnect first.");
}
catch (const Exception &) {
ShowMessage("Error Connecting!");
}