如何解决QTcpSocket连接
| 我正在尝试使用QTcpsocket和QTcpserver编写聊天。 我的几段代码 客户ChatClient::ChatClient(QObject *parent)
: QObject(parent) {
connect(&tcpsocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(error(QAbstractSocket::SocketError)));
connect(&tcpsocket,SIGNAL(connected()),SLOT(requestForID()));
connect(&tcpsocket,SIGNAL(readyRead()),SLOT(receiveMessage()));
tcpsocket.connectToHost(QHostAddress::LocalHost,PORT);
}
void ChatClient::requestForID() {
qDebug() << \"Connected,requesting for ID\";
QByteArray segment;
QDataStream out(segment);
out.setVersion(QDataStream::Qt_4_7);
out << (quint16)0 << ID;
out.device()->seek(0);
out << (quint16)(segment.size() - sizeof(quint16));
tcpsocket.write(segment);
}
void ChatClient::error(QAbstractSocket::SocketError error) {
qDebug() << \"Socket error\" << error;
}
服务器
ChatServer::ChatServer(QObject *parent)
: QObject(parent) {
if (!tcpserver.listen(QHostAddress::LocalHost,PORT)) {
qDebug() << \"Unable to start the server\"
<< tcpserver.errorString();
}
connect(&tcpserver,SIGNAL(newConnection()),SLOT(processConnection()));
}
客户端套接字永远不会连接。永远不会打印错误。
端口= 6178。
Runnig KUbuntu。从bash ping到localhost成功。
我究竟做错了什么?
解决方法
我看不到您的代码中的任何错误,您确定您的Qt和“网络”工作正常吗? Qt应该发出一个错误,但至少您的代码段对我来说是正确的。也许您的代码永远不会被调用,请向方法中添加一些调试消息。
最后,您可以构建Qt Network示例,并测试该示例是否在您的计算机上运行。如果没有这些示例,请在此处查看:http://doc.qt.io/qt-5/examples-network.html(Fortune Server / Client for TCP)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。