void MyServer::slotReadClient() { QTcpSocket* pClientSocket = (QTcpSocket*)sender(); QDataStream in(pClientSocket); in.setVersion(QDataStream::Qt_5_3); for(;;){ if(!nextBlockSize){ if(pClientSocket->bytesAvailable() < sizeof(quint32)) { break; } in >> nextBlockSize; } if(pClientSocket->bytesAvailable() < nextBlockSize) { break; } QString request; in >> request; QStringList req_param = request.split(" "); if(req_param.at(0) == "GETCURRENTVERSION") sendCurrVers(pClientSocket); if(req_param.at(0) == "GETSUBJECTS") sendArrayToClient(pClientSocket,getSubjects()); if(req_param.at(0) == "GETTHEMES") sendArrayToClient(pClientSocket,getThemes(req_param.at(1))); if(req_param.at(0) == "GETPICTURES") sendArrayToClient(pClientSocket,getPictures(req_param.at(1),req_param.at(2))); if(req_param.at(0) == "GETIMAGE") sendImageToClient(pClientSocket,getImage(req_param.at(1))); if(req_param.at(0) == "PUTSUBJECT"){ putSubject(req_param.at(1)); version++; } if(req_param.at(0) == "PUTTHEME"){ putTheme(req_param.at(1),req_param.at(2)); version++; } if(req_param.at(0) == "PUTIMAGE") { QImage img; in >> img; quint32 k = putImage(img,req_param.at(1),req_param.at(2), req_param.at(3)); version++; QList<QString> lst; lst << QString("%1").arg(k); sendArrayToClient(pClientSocket,lst); } if(req_param.at(0) == "DELETESUBJECT"){ deleteSubject(req_param.at(1)); version++; } if(req_param.at(0) == "DELETETHEME"){ deleteTheme(req_param.at(1),req_param.at(2)); version++; } if(req_param.at(0) == "DELETEIMAGE"){ deleteImage(req_param.at(1)); version++; } if(req_param.at(0) == "SWAPIMAGE"){ QImage img; in >> img; swapImage(img,req_param.at(1)); version++; }
int blogeditsubject_main() { struct Blog blog; int i; char *cmd; printXBlogHeader(); check_msg(); changemode(READING); if (!loginok || isguest) { printf("请先登录。"); goto END; } if (openBlogW(&blog, currentuser->userid) < 0) { printf("您尚未建立 blog。"); goto END; } printBlogHeader(&blog); printBlogSettingSideBox(&blog); printf("<div id=contents>"); cmd = getparm("cmd"); if (!strcmp(cmd, "modify")) modifySubjects(&blog); else if (!strcmp(cmd, "add")) addSubject(&blog); else if (!strcmp(cmd, "delete")) deleteSubject(&blog); printf("<br><b>修改现有栏目</b>:<br>" "<form action=blogeditsubject method=post>" "<input type=hidden name=cmd value=modify><table border=1>"); printf ("<tr><td>编号</td><td>标题</td><td> </td><td>文章数</td><td></td></tr>"); for (i = 0; i < blog.nSubject; i++) { if (!*blog.subject[i].title && !blog.subject[i].count) continue; printf("<tr>"); printf("<td>%d</td>", i); printf ("<td><input name=\"title%d\" type=text value=\"%s\" /></td>", i, nohtml(blog.subject[i].title)); printf ("<td><input name=\"hide%d\" type=checkbox%s> 隐藏</td>", i, blog.subject[i].hide ? " checked" : ""); printf("<td>%d 篇</td><td> ", blog.subject[i].count); if (!blog.subject[i].count) { printf ("<a href=\"blogeditsubject?cmd=delete&subjectID=%d\">删除</a>", i); } printf("</td></tr>"); } closeBlog(&blog); printf("</table>"); printf("<input type=submit value=\"修改\"></form>"); printf("<br><br><b>添加新栏目</b>:<br>" "<form action=blogeditsubject method=post>" "<input type=hidden name=cmd value=add>"); printf("标题:<input name=title><br>"); printf("<input name=hide type=checkbox> 隐藏该栏目<br>"); printf("<input type=submit value=\"添加\">"); printf("</form>"); printf("</div>"); END: printXBlogEnd(); return 0; }