- Server.pro :
QT += core gui
TARGET = tugasNetworking-server
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
QT += network
- mainwindow.h :
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include
#include
#include
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QTcpServer* server;
QTcpSocket* client;
private slots:
void on_server_newConnection();
void on_client_readyRead();
};
#endif // MAINWINDOW_H
- mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#include
#include
#include
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// inisialisasi server
server = new QTcpServer(this);
server->listen(QHostAddress::Any, 7777);
connect(server, SIGNAL(newConnection()), this, SLOT(on_server_newConnection()));
}
MainWindow::~MainWindow()
{
delete ui;
delete server;
}
void MainWindow::on_server_newConnection(){
client = server->nextPendingConnection();
connect(client, SIGNAL(readyRead()), this, SLOT(on_client_readyRead()));
}
void MainWindow::on_client_readyRead()
{
QString request = client->readAll();
ui->textEdit->append("Dari client : " + request);
if (request.indexOf("get ") >= 0)
{
// get E:\kontak.txt
QString filename = request.mid(4);
QFile file;
file.setFileName(filename);
file.open(QIODevice::ReadOnly);
QTextStream pembaca;
pembaca.setDevice(&file);
QString baris = pembaca.readLine();
while (!baris.isNull()){
client->write(baris.toLatin1());
baris = pembaca.readLine();
}
file.close();
}
else if (request.indexOf("set bgcolor ") >= 0) {// set bgcolor red
QString color = request.mid(12);
this->setStyleSheet("background-color: " + color);
}
else{
client->write("Hallo client,can I help you? :)");
}
}
TAMPILAN AKHIR DARI PROGRAM INI DITUNJUKKAN PADA GAMBAR DI BAWAH INI :
1. Tampilan saat set background colour
dengan perintah "set bgcolor(spasi)warna"
2. Tampilan saat mengambil informasi dari E:\kontak.txt
dengan perintah "get(spasi)E:\kontak.txt"
3. Tampilan saat mengirimkan hallo server
dengan perintah "hallo server"
Referensi :
Dosen Informatika dan Pemrograman
Penulis :
Frisma Kusuma Dwi Astiti
Mekatronika 2.2