问题描述
- 使用QT,主机做了一个服务端,局域网中可以连接别人,别人连接自己输入字符就会断开连接 5C
- cmd下使用telnet也是输入字符就断开连接
电脑杀毒软件一直没启动,防火墙全部关闭,端口号10000
然后写了个客户端,同样的问题,输入字符断开连接。楼下依次上图
解决方案
解决方案五:
输入字符a就出现了断开连接 下面上代码
解决方案六:
chatsever.h
#ifndef CHATSEVER_H
#define CHATSEVER_H
#include
#include
#include
#include
#include
#include
namespace Ui {
class ChatSever;
}
class ChatSever : public QMainWindow
{
Q_OBJECT
public:
explicit ChatSever(QWidget *parent = 0);
~ChatSever();
void startSever();
void stopSever();
private slots:
void on_startBtn_clicked();
void on_stopBtn_clicked();//处理网络客户端连接的槽函数void newConnectionSlots();//客户端数据
void clientReadyReadSlots();
private:
Ui::ChatSever ui;
QTcpServer server;
QTcpSocket* socket;
};
#endif // CHATSEVER_H
chatsever.cpp
#include ""chatsever.h""
#include ""ui_chatsever.h""
ChatSever::ChatSever(QWidget *parent) :
QMainWindow(parent)
ui(new Ui::ChatSever)
{
ui->setupUi(this);
ui->startBtn->setIcon(QIcon(""D:Qt-appliChatSevericonsu.png""));
}
ChatSever::~ChatSever()
{
delete ui;
}
void ChatSever::startSever()
{
//
}
void ChatSever::stopSever()
{
disconnect(serverSIGNAL(newConnection()));
server->close();
}
void ChatSever::on_startBtn_clicked()
{
//启动服务器
//1.得到相应的ipport
//IPv4_Any
int port=ui->lineEdit->text().toInt();
ui->textEdit->append(tr(""%1"").arg(port));
//2.实例化服务器对象
server = new QTcpServer(this);
//3.启动监听 connect(serverSIGNAL(newConnection())thisSLOT(newConnectionSlots()));
// server->listen(QHostAddress::Anyport);
//4.等待处理客户端连接
server->listen(QHostAddress::Any10000);
//connect(serverSIGNAL(newConnection())thisSLOT(newConnectionSlots()));
ui->textEdit->append(""listen ..."");
}
void ChatSever::on_stopBtn_clicked()
{
//
}
void ChatSever::newConnectionSlots()
{
ui->textEdit->append(""this is a client ..."");
socket=server->nextPendingConnection();
connect(socketSIGNAL(readyRead())thisSLOT(clientReadyReadSlots()));
}
void ChatSever::clientReadyReadSlots()
{
QByteArray data;
data.clear();
while(socket->bytesAvailable()){
data.append(socket->readAll());
}
ui->textEdit->append(""ready read"");
ui->textEdit->append(data);
}
解决方案七:
检查你是协议,是不是什么地方没处理好,一切按协议来
解决方案八:
很久之前也做过一个类似的,好像也碰到过这个问题。发送字符的时候连接自动退出,不记得怎么解决的,我可以把代码发给你。。要的话留下邮箱
解决方案九:
检查你的协议,可能是这个字符引发了什么错误,可以获取下错误码