在Lazarus关闭连接并重新打开Synapse

时间:2014-10-06 14:42:55

标签: sockets tcp lazarus fpc

我在Lazarus上使用Synapse库,我尝试在两个不同的IP地址之间切换TCPBlockSocket连接。

我用:

创建Socket连接
mySocket:=TTCPBlockSocket.Create

然后我用:

连接到第一个IP地址
mySocket.Connect(firstIPaddress,portNumber);

这很好用,但如果我尝试用

切换到第二个IP地址
mySocket.Connect(secondIPaddress,portNumber);

我通过mySocket.SendString()发送的所有数据仍然会发送到firstIPaddress

我已尝试.Destroy mySocket并重新创建它但我遇到了崩溃(我检查是否已分配mySocket,是否在重新创建{.Destory之前执行了TCPBlockSocket {1}}对象 - 但无论如何这看起来有点严重。

是否有正确的方法断开连接,然后将现有的TCPBlockSocket重新连接到其他IP地址?

是否有一种简单的方法可以测试TCPBLockSocket是否具有有效且有效的连接?

1 个答案:

答案 0 :(得分:1)

当你找到它时很明显......

在使用新的IP地址和端口呼叫mySocket.CloseSocket()之前,您需要致电.Connect

(仍然有问题,检查打开的连接是否仍然打开并正常工作 - 根据我对OP的评论)