0
我與Lazarus使用Synapse庫,我試圖切換兩個不同IP地址之間的TCPBlockSocket
連接。關閉連接並重新打開與拉扎魯斯Synapse
我創建一個Socket連接:
mySocket:=TTCPBlockSocket.Create
我再與連接到第一個IP地址:
mySocket.Connect(firstIPaddress,portNumber);
這工作得很好,但如果我嘗試切換到第二個IP地址與
mySocket.Connect(secondIPaddress,portNumber);
我mySocket.SendString()
發送任何數據仍發送到firstIPaddress
。
我已經試過.Destroy
荷蘭國際集團mySocket
並重新創建它,但我得到的崩潰(我是否mySocket
分配,如果它是重新創建TCPBlockSocket
對象之前做.Destory
- 但似乎有點嚴重反正
是有沒有斷開並重新退出的TCPBlockSocket
到一個不同的IP地址?
,並有一個簡單的方法來測試,如果TCPBLockSocket
具有活動和工作連接正確的方式?
我看了一下http://stackoverflow.com/questions/13045943/delphi -synapse-how-to-check-if-i-am-still-connected for the second question above,but'(mySocket.Socket = INVALID_SOCKET)or((mySocket.WaitingData = 0)and mySocket.CanRead(0)) 「即使我有很好的連接,它總是返回假... – 2014-10-06 16:10:39
經過進一步調查,它似乎是'.CanRead(0)'每次都返回'false'並導致調用返回'false' - 偶數儘管連接很好。 – 2014-10-08 08:31:04