//文本数据包格式:群聊标志 + 发信息员工QQ号 + 收信息员工QQ号(群QQ号)
//表情数据包格式:群聊标志 + 发信息员工QQ号 + 收信息员工QQ号(群QQ号)
//msgType 0表情信息 1文本信息 2文件信息
void TalkWindowShell::updateSendTcpMsg(QString& strData, int& msgType, QString fileName)
{
//获取当前活动聊天窗口
TalkWindow* curTalkWindow = dynamic_cast<TalkWindow*>(ui.rightStackedWidget->currentWidget());
QString talkId = curTalkWindow->getTalkId();
QString strGroupFlag;
QString strSend;
if (talkId.length() == 4)//群QQ的长度
{
strGroupFlag = "1";
}
else
{
strGroupFlag = "0";
}
int dataLength = strData.length();
const int sourceDataLength = dataLength;
QString strdataLength;
if (msgType == 1)//发送文本信息
{
//文本信息的长度约定为5位
if (dataLength == 1)
{
strdataLength = "0000" + QString::number(sourceDataLength);
}
else if (dataLength == 2)
{
strdataLength = "000" + QString::number(sourceDataLength);
}
else if (dataLength == 3)
{
strdataLength = "00" + QString::number(sourceDataLength);
}
else if (dataLength == 4)
{
strdataLength = "0" + QString::number(sourceDataLength);
}
else if(dataLength == 5)
{
strdataLength = QString::number(sourceDataLength);
}
else
{
QMessageBox::information(this,
QString::fromLocal8Bit("提示"),
QString::fromLocal8Bit("不合理的数据长度!"));
}
//文本数据包格式:群聊标志 + 发信息员工QQ号 + 收信息员工QQ号(群QQ号)
strSend = strGroupFlag+gLoginEmployeeID+talkId + "1" + strdataLength + strSend;
}
else if(msgType == 0)//表情信息
{
//表情数据包格式:群聊标志 + 发信息员工QQ号 + 收信息员工QQ号(群QQ号)
// + 信息类型 + 表情个数 + images + 数据
strSend = strGroupFlag + gLoginEmployeeID + talkId
+ "0" + strData;
}
else if (msgType == 2)//文件
{
//文本数据包格式:群聊标志 + 发信息员工QQ号 + 收信息员工QQ号(群QQ号)
// + 信息类型(2) + 文件长度 + "bytes" + 文件名称 + "data_begin" + 文件内容
QByteArray bt = strData.toUtf8();
QString strLength = QString::number(strData.toUtf8().length());
strSend = strGroupFlag + gLoginEmployeeID + talkId
+ "2" + strLength + "bytes" + fileName + "data_begin" + strData;
}
QByteArray dataBt;
dataBt.resize(strSend.length());
dataBt = strSend.toUtf8();
m_tcpClientSocket->write(dataBt);
}
客户端tcp发送表情文件信息
最新推荐文章于 2024-11-13 15:10:22 发布