• 大小: 2.9MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-10-29
  • 语言: 其他
  • 标签:

资源简介

《Qt用TCP和UDP传图片》,Qt分别用TCP与UDP实现,C/S模式传输图片。

资源截图

代码片段和文件信息

/*
 * Copyright (c) 2006-2007 Johan Thelin
 * 
 * All rights reserved.
 * 
 * Redistribution and use in source and binary forms with or without modification 
 * are permitted provided that the following conditions are met:
 * 
 *     * Redistributions of source code must retain the above copyright notice 
 *       this list of conditions and the following disclaimer.
 *     * Redistributions in binary form must reproduce the above copyright notice  
 *       this list of conditions and the following disclaimer in the documentation 
 *       and/or other materials provided with the distribution.
 *     * Neither the name of APress nor the names of its contributors 
 *       may be used to endorse or promote products derived from this software 
 *       without specific prior written permission.
 * 
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * “AS IS“ AND ANY EXPRESS OR IMPLIED WARRANTIES INCLUDING BUT NOT
 * LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL
 * EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE DATA OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 */

#include 
#include 
#include 

#include “clientdialog.h“

ClientDialog::ClientDialog() : QDialog()
{
    ui.setupUi( this );
  
    connect( ui.getButton SIGNAL(clicked()) this SLOT(getClicked()) );
  
    connect( &socket SIGNAL(error(QAbstractSocket::SocketError)) 
            this SLOT(tcpError(QAbstractSocket::SocketError)) );
    connect( &socket SIGNAL(readyRead()) this SLOT(tcpReady()) );
}

void ClientDialog::getClicked()
{
    ui.getButton->setEnabled( false );
  
    ui.imageLabel->setPixmap( QPixmap() );
    ui.imageLabel->setText( tr(“Getting image...“) );
  
    dataSize = 0;
  
    socket.abort();
    socket.connectToHost( ui.serverEdit->text() 9876 );
}

void ClientDialog::tcpReady()
{
    if ( dataSize == 0 ) {
        QDataStream stream( &socket );
        stream.setVersion( QDataStream::Qt_4_0 );
  
        if ( socket.bytesAvailable() < sizeof(quint32) ) return;
      
        stream >> dataSize;
    }
  
    if ( dataSize > socket.bytesAvailable() ) return;

    QByteArray array = socket.read( dataSize );
    QBuffer buffer(&array);
    buffer.open( QIODevice::ReadOnly );
  
    QImageReader reader(&buffer “PNG“);
    QImage image = reader.read();

    if ( !image.isNull() ) {
        ui.imageLabel->setPixmap( QPi

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2012-10-08 21:16  Qt 用 TCP 和 UDP 传图片\
     目录           0  2012-10-08 21:16  Qt 用 TCP 和 UDP 传图片\tcpclient\
     文件        3564  2012-10-08 11:25  Qt 用 TCP 和 UDP 传图片\tcpclient\clientdialog.cpp
     文件        2111  2012-10-08 10:55  Qt 用 TCP 和 UDP 传图片\tcpclient\clientdialog.h
     文件        4283  2007-08-04 17:33  Qt 用 TCP 和 UDP 传图片\tcpclient\clientdialog.ui
     目录           0  2012-10-08 21:16  Qt 用 TCP 和 UDP 传图片\tcpclient\debug\
     文件      762136  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpclient\debug\clientdialog.o
     文件      723045  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpclient\debug\main.o
     文件        2433  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpclient\debug\moc_clientdialog.cpp
     文件      734581  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpclient\debug\moc_clientdialog.o
     文件     1413139  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpclient\debug\tcpclient.exe
     文件        1845  2012-10-08 11:04  Qt 用 TCP 和 UDP 传图片\tcpclient\main.cpp
     文件        6259  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpclient\Makefile
     文件        6063  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpclient\Makefile.Debug
     文件        6137  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpclient\Makefile.Release
     目录           0  2012-10-08 21:16  Qt 用 TCP 和 UDP 传图片\tcpclient\release\
     文件         414  2007-02-01 16:14  Qt 用 TCP 和 UDP 传图片\tcpclient\tcpclient.pro
     文件       10346  2010-04-13 16:47  Qt 用 TCP 和 UDP 传图片\tcpclient\tcpclient.pro.user
     文件        6451  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpclient\ui_clientdialog.h
     目录           0  2012-10-08 21:16  Qt 用 TCP 和 UDP 传图片\tcpserver\
     目录           0  2012-10-08 21:16  Qt 用 TCP 和 UDP 传图片\tcpserver\debug\
     目录           0  2012-10-08 21:16  Qt 用 TCP 和 UDP 传图片\tcpserver\debug\images\
     文件      298820  2007-02-01 17:46  Qt 用 TCP 和 UDP 传图片\tcpserver\debug\images\test-green.png
     文件      327442  2007-01-17 17:31  Qt 用 TCP 和 UDP 传图片\tcpserver\debug\images\test.png
     文件        9216  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpserver\debug\images\Thumbs.db
     文件      339868  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpserver\debug\main.o
     文件      424824  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpserver\debug\server.o
     文件      498358  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpserver\debug\serverthread.o
     文件      693560  2010-04-13 16:37  Qt 用 TCP 和 UDP 传图片\tcpserver\debug\tcpserver.exe
     目录           0  2012-10-08 21:16  Qt 用 TCP 和 UDP 传图片\tcpserver\images\
     文件      298820  2007-02-01 17:46  Qt 用 TCP 和 UDP 传图片\tcpserver\images\test-green.png
............此处省略24个文件信息

评论

共有 条评论