当前位置:编程学习 > wap >>

QT 网络编程问题 希望大家帮我解答 先谢谢了

问题是这样的:
我装的是Ubuntu系统,
编了一个QT程序:
程序如下:
main.cpp

#include <QApplication>
#include "cmysock.h"
#include <QTextCodec>
int main(int argc,char ** argv)
{
    QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk"));
    QApplication app(argc,argv);
    CMySock *as = new CMySock;
    return app.exec();
}

cmysock.h

#ifndef CMYSOCK_H
#define CMYSOCK_H

#include <QWidget>
#include <QTcpServer>
class CMySock : public QWidget
{
    Q_OBJECT
public:
    explicit CMySock(QWidget *parent = 0);
    
signals:
    
public slots:
    void xx();
private:
    QTcpServer *server;
};

#endif // CMYSOCK_H


mysock.cpp

#include "cmysock.h"
#include <QDebug>
#include <QMessageBox>
CMySock::CMySock(QWidget *parent) :
    QWidget(parent)
{
    server = new QTcpServer(this);
    while (!server->isListening() && !server->listen(QHostAddress::Any,8888))
    {
        QMessageBox::StandardButton ret =QMessageBox::critical(this,tr("回环"),
                tr("无法开始测试: %1.").arg(server->errorString()),
                QMessageBox::Retry | QMessageBox::Cancel);
        if (ret == QMessageBox::Cancel)
                return;
    }
    qDebug()<<tr("创建监听");
    connect(server,SIGNAL(newConnection()),this,SLOT(xx()));
}

void CMySock::xx()
{
    qDebug()<<tr("有连接");
}


以上是服务器程序,

下面是客户端程序:

#include <QApplication>
#include <QTcpSocket>

int main(int argc,char **argv)
{
    QApplication app(argc,argv);
    QTcpSocket* mysock = new QTcpSocket;
    mysock->connectToHost("IP",8888);
    return app.exec();
}

程序贴完了,
问题是?:
别人的机子运行客户端,我的机子运行服务器,我就可以得到别人的连接
我的机子运行客户端,别人的机子运行服务器,我就连接不上别人的。

别人装得是虚拟机,我的装的是Ubuntu系统

两个都是Linux下的Qt


大家帮忙看看。。。。。。 qt 网络 server 服务器 编程 --------------------编程问答-------------------- 谁帮帮我 --------------------编程问答-------------------- 换个端口试试 --------------------编程问答-------------------- 不是端口的问题,端口欢乐好几个,,我咕摸着是虚拟机捣的鬼。。。可是测试时,,没办法,,就看谁以前遇到者问题。。。帮我也解决一哈。。 --------------------编程问答-------------------- 这个应该是和网络有关系吧,你看看你虚拟机里的系统的IP是多少,这个可能能错了 --------------------编程问答-------------------- 手工telnet测试端口能不能连通
看描述因该是iptables什么的过滤了访问 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 错了,,我把Qt换到window下,没有虚拟机,两个都是windows下的,也是  我连不上别人的,别人能连上我的 --------------------编程问答--------------------
引用 4 楼 ultrapro 的回复:
这个应该是和网络有关系吧,你看看你虚拟机里的系统的IP是多少,这个可能能错了
错了,,我把Qt换到window下,没有虚拟机,两个都是windows下的,也是  我连不上别人的,别人能连上我的 --------------------编程问答-------------------- 解决了,虚拟机没有桥接
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,