遇到個問題,使用qtcpsocket的套接字連接linux服務器時,連接不上,但是windows下命令列可以連接,什么原因啊,在線等,急!
QT連接服務器代碼:
socket =new QTcpSocket();
socket->connectToHost(QHostAddress("127.0.0.1"),8083);
uj5u.com熱心網友回復:
少了一句socket->waitForConnected();
uj5u.com熱心網友回復:
。。。。這個只是驗證的吧,加了也沒用
uj5u.com熱心網友回復:
在.h中:QTcpSocket *m_tcpsocket;
在.cpp中
m_tcpsocket = new QTcpSocket(this);
m_tcpsocket->abort();
m_tcpsocket->connectToHost(QHostAddress::LocalHost,6666);//設定客戶端的埠號
connect(m_tcpsocket,SIGNAL(readyRead()),
this,SLOT(readMessage()));//用于接受資料
uj5u.com熱心網友回復:
不加 waitForConnected() ,你在局域網內或許有30%的概率能正常作業,但在internet 上將幾乎無法正常作業。
connectToHost() 之后用 if ( tcpSocket.waitForConnected(m_loginTimeout) ) {}
是常識用法,只有必須,沒有可選 ~~~
uj5u.com熱心網友回復:
加了還是不行,有沒有什么外部原因啊,我在qt呼叫winsock就可以訪問uj5u.com熱心網友回復:
QTcpSocket 作為客戶端使用,是非常不錯的,又穩定。估計是你其它的代碼寫的不正確所致。uj5u.com熱心網友回復:
QTcpSocket 作為客戶端使用,是非常不錯的,又穩定。估計是你其它的代碼寫的不正確所致。
沒寫啥代碼,就這幾行。。。
uj5u.com熱心網友回復:
linux下telnet可以連接Qt的服務器,windows下telnet可以連接linux下的服務器,但是qt的客戶端連不上linux的服務器。。。。qt客戶端代碼:QTcpsocket *socket;
socket = new QTcpSocket();
socket->abort();
socket->connectToHost(QHostAddress("xx.xxx.xxx.xx""),8083);
if(socket->waitForConnected(3000))
{
列印成功
}
else{
列印失敗
}
uj5u.com熱心網友回復:
要不要考慮埠8083的大小端問題?uj5u.com熱心網友回復:
不用Qt,直接呼叫winsock能連上嗎轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/17494.html
標籤:網絡及通訊開發
上一篇:機房管理查詢系統設計與實作
下一篇:查詢水果價格
