#include "mysocket.h" #if _MSC_VER >= 1600 #pragma execution_character_set("utf-8") #endif MySocket::MySocket(qintptr sockDesc, QObject *parent): //sockDesc这玩意是一个描述套接字的东西营 QTcpSocket(parent), m_sockDesc(sockDesc) { qRegisterMetaType("qintptr"); connect(this, SIGNAL(readyRead()), this, SLOT(recvData()));//接收数据 connect(this, SIGNAL( error(QAbstractSocket::SocketError) ), this, SLOT(SocketError(QAbstractSocket::SocketError)));//接收数据 } MySocket::~MySocket() { } void MySocket::SocketError(QAbstractSocket::SocketError) { int error = this->error(); switch (error) { case QAbstractSocket::RemoteHostClosedError: { qDebug()<<"RemoteHostClosedError"; emit disconnected(); break; } default: { qDebug()<<"SocketDefaultError"; break; } } } void MySocket::sendData(QString IP, const QByteArray &data) //此处应修改为向某IP发送 { //if (id == m_sockDesc && !data.isEmpty()) if (IP == peerAddress().toString().remove(0, 7) && !data.isEmpty()) { this->write(data); } } void MySocket::recvData(void) { QByteArray data = readAll(); if(data.contains("###%###"))//文件头处理 { //qDebug()<