引用第4楼yb824于2009-11-19 15:00发表的 :
tcpSocket->disconnectFromHost();加上这句应该是行的
不行的。。
我知道问题的原因了,正常的流程是:connectToHost之后,tcpSocket的状态变为2( socket开始建立连接.)
在tcpSocket发送readyRead信号之后, tcpSocket的状态才变为3( 连接建立成功 )
然后开始接收数据,
接收完后数据后tcpSocket->disconnectFromHost();
至此tcpSocket的状态又恢复为0 ( 未连接 )
------------------------------------------------------------------------------------------------------------------------
而当我将IP改为一个不存在的IP后, connectToHost之后,tcpSocket的状态变为2( socket开始建立连接.)
而此时因ip是错误的,没有数据可读,因此不会发送readyRead信号,tcpSocket的状态也就一直保持为2,
当下次再改为正确的IP后,connnectToHost时一看tcpSocket状态是2,结果就报错了。。
-------------------------------------------------------------------------------------------------------------------------
但现在的问题是,无论IP是否正确,connectToHost之后都返回状态为2, 那么怎样判断是否找到了主机呢?如果说能从
这里判断ip是错误的,我就可以直接设置tcpSocket的state为0,也就不影响下一次的调用了。。。