代码拉取完成,页面将自动刷新
同步操作将从 caowai/qipmsg 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "ipmsgfileserver.h"
#include <QThread>
#include <unistd.h>
#include "filetransworker.h"
IpMsgFileServer::IpMsgFileServer(QObject *parent) : QObject(parent)
{
if(false == mServer.listen(QHostAddress::Any,2425))
{
qDebug()<<"Listen to port 2425 filead";
mFileServerListen = false;
return;
}
else {
mFileServerListen = true;
}
connect(&mServer,SIGNAL(newConnection()),this,SLOT(fileServerNewConnection()));
}
void IpMsgFileServer::fileServerNewConnection()
{
QTcpSocket *sock = mServer.nextPendingConnection();
qDebug()<<"new connection:"<<__FUNCTION__<<QThread::currentThreadId();
if(nullptr == sock)
return;
qDebug()<<"Client"<<sock->peerAddress().toString()<<"Port"<<sock->peerPort()<<"connected";
connect(sock,SIGNAL(readyRead()),this,SLOT(fileServerReadyRead()));
//connect(sock,SIGNAL(disconnected()),this,SLOT(fileServerSockDisconnect()));
//connect(sock,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(fileServerSockError(QAbstractSocket::SocketError)));
mSocks.append(sock);
}
void IpMsgFileServer::fileServerReadyRead()
{
QByteArray buffer;
QTcpSocket* readSocket = qobject_cast<QTcpSocket*>(sender());
qDebug()<<"Client"<<readSocket->peerAddress()<<"Port"<<readSocket->peerPort()<<"send data";
buffer = readSocket->readAll();
qDebug()<<buffer;
//readSocket->close();
emit ipMsgFileServerDataReady(readSocket->peerAddress().toIPv4Address(),readSocket->peerPort(),buffer);
}
void IpMsgFileServer::fileServerSockDisconnect()
{
QTcpSocket* srcSocket = qobject_cast<QTcpSocket*>(sender());
qDebug()<<"Client"<<srcSocket->peerAddress().toString()<<"Port"<<srcSocket->peerPort()<<"disconnected";
qDebug()<<"Tell send thread, stop send data to this client and delete sock and connect from queue";
return;
}
void IpMsgFileServer::fileServerSockError(QAbstractSocket::SocketError error)
{
QTcpSocket* srcSocket = qobject_cast<QTcpSocket*>(sender());
qDebug()<<"Client"<<srcSocket->peerAddress().toString()<<"Port"<<srcSocket->peerPort()<<"error";
qDebug()<<"Tell send thread, stop send data to this client and delete sock and connect from queue";
return;
}
QTcpSocket* IpMsgFileServer::fileServerSockMatch(quint32 host, quint16 port)
{
for(int i =0; i< mSocks.count();i++)
{
if(mSocks.at(i)->peerAddress().toIPv4Address() == host
&& mSocks.at(i)->peerPort() == port)
return mSocks.at(i);
}
return nullptr;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。