void Server::slotReadClient() { QTcpSocket* pClientSocket = (QTcpSocket*)sender(); QDataStream in(pClientSocket); //in.setVersion(QDataStream::Qt_4_8); for(;;) { if (!NextBlockSize) { if (pClientSocket->bytesAvailable() < sizeof(quint16)) break; in >> NextBlockSize; } if (pClientSocket->bytesAvailable() < NextBlockSize) break; QTime time; QString str; in >> time >> str; QString strMessage = time.toString() + " " + "Client has sent - " + str; //ptxt->append(strMessage); emit signal_display(strMessage); NextBlockSize = 0; str = "Server Response: Recived " + str + "/"; QString *pstr = &str; sendToClient(pClientSocket, *pstr); } }
void Server::slotNewConnection() { QTcpSocket* pClientSocket = ptcpServer->nextPendingConnection(); connect(pClientSocket, SIGNAL(disconnected()), pClientSocket, SLOT(deleteLater())); connect(pClientSocket, SIGNAL(readyRead()), this, SLOT(slotReadClient())); QString str = "Server Response: Connected!!"; QString* pstr = &str; sendToClient(pClientSocket, *pstr); QString buf = "New client connected: Новий клієнт" + pClientSocket->peerAddress().toString(); emit signal_display(buf); clients.insert(pClientSocket->peerAddress().toString(), pClientSocket); }
static void wait_for_job(t_config *conf, t_job *job) { int status; update_last_use(conf->head_job, job); if (kill(job->pgid, SIGCONT) < 0) my_puterr("Error: kill (SIGCONT)\n"); job->head_process->is_stopped = 0; waitpid(job->pgid, &status, WUNTRACED); if (WIFSTOPPED(status)) job->head_process->is_stopped = 1; else job->head_process->is_finish = 1; signal_display(status); if (tcsetpgrp(STDIN_FILENO, getpgid(getpid())) == -1) my_puterr("Error: tcsetpgrp\n"); if (tcsetattr(STDIN_FILENO, TCSADRAIN, &conf->tmodes) == -1) my_puterr("Error: tcsetattr\n"); }
bool Server::startServer() { ptcpServer = new QTcpServer(this); if (!ptcpServer->listen(QHostAddress::Any, nPort)) { ptcpServer->close(); emit signal_startServerError(ptcpServer->errorString()); return false; } connect(ptcpServer, SIGNAL(newConnection()), this, SLOT(slotNewConnection())); emit signal_display(QString("Server started successfully!!!")); localServer = new QTcpServer(this); localPort = 8888; if (!localServer->listen(QHostAddress::LocalHost, localPort)) { localServer->close(); emit signal_startServerError(localServer->errorString()); return false; } return true; }