Beispiel #1
0
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);
	}
}
Beispiel #2
0
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);
}
Beispiel #3
0
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");
}
Beispiel #4
0
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;
}