Chinaunix

标题: 求网络编程大手!!!QT初级测试服务端,(暂时并没有图片) [打印本页]

作者: UFancyMe    时间: 2015-09-17 22:40
标题: 求网络编程大手!!!QT初级测试服务端,(暂时并没有图片)
cmd连接主机成功(端口号10000),但是要输入字符就断开连接。在教室的局域网上招来别人的电脑测试,打开他的程序,cmd下可以连接到他的主机并发送字符串,那边也可以接收,但是他连接不到我的主机上
老师告诉我可能是系统或者还有别的进程拒绝了连接
作者: UFancyMe    时间: 2015-09-17 22:58
@大手    求解答
作者: windoze    时间: 2015-09-17 23:38
要么你把代码贴出来,要么你就得等我们读心术修炼成功。
作者: UFancyMe    时间: 2015-09-18 07:34
C:\Users\ace\Desktop\捕获.PNG
作者: UFancyMe    时间: 2015-09-18 07:37
附件来了。。。。。

ChatSever.zip

3.05 MB, 下载次数: 5


作者: UFancyMe    时间: 2015-09-18 07:39
chatsever.h
===============================

#ifndef CHATSEVER_H
#define CHATSEVER_H

#include <QMainWindow>
#include<QIcon>
#include<QTcpServer>
#include<QTcpSocket>
#include<QByteArray>
#include<QDebug>
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-appli\\ChatSever\\icons\\u.png");
}

ChatSever::~ChatSever()
{
    delete ui;
}

void ChatSever::startSever()
{
    //
}

void ChatSever::stopSever()
{
    disconnect(server,SIGNAL(newConnection()));
    server->close();
}

void ChatSever:n_startBtn_clicked()
{
    //启动服务器
    //1.得到相应的ip,port
    //IPv4_Any
    int  port=ui->lineEdit->text().toInt();
    ui->textEdit->append(tr("%1".arg(port));
    //2.实例化服务器对象
    server = new QTcpServer(this);

    //3.启动监听
     connect(server,SIGNAL(newConnection()),this,SLOT(newConnectionSlots()));
   // server->listen(QHostAddress::Any,port);
    //4.等待处理客户端连接
    server->listen(QHostAddress::Any,10000);
     //connect(server,SIGNAL(newConnection()),this,SLOT(newConnectionSlots()));
    ui->textEdit->append("listen ...";
}

void ChatSever:n_stopBtn_clicked()
{
   //
}

void ChatSever::newConnectionSlots()
{
    ui->textEdit->append("this is a client ...";
    socket=server->nextPendingConnection();
    connect(socket,SIGNAL(readyRead()),this,SLOT(clientReadyReadSlots()));
}

void ChatSever::clientReadyReadSlots()
{
    QByteArray data;
    data.clear();
    while(socket->bytesAvailable()){
        data.append(socket->readAll());
    }
    ui->textEdit->append("ready read";
    ui->textEdit->append(data);
}




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2