Добавил:
Только когда поступишь в технический вуз поймешь на сколько ты гуманитарий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Разработка приложений на C++_Практическая работа №14

.pdf
Скачиваний:
0
Добавлен:
07.06.2025
Размер:
474.57 Кб
Скачать

1. Установить хост и порт сервера, информационное сообщение сервера.

В spek файл добавить:

Requires: qt5-qtdeclarative-import-websockets

И проверить permissions в desktop файле.

MainPage.qml import QtQuick 2.6

import Sailfish.Silica 1.0 import QtWebSockets 1.0

Page{

Column {

width: parent.width height: parent.height

// SERVER

Rectangle {

width: parent.width height: parent.height /2 color: 'pink'

WebSocketServer {

id: server

listen: true port: 8080

onClientConnected: function(webSocket) { webSocket.onTextMessageReceived.connect(function(message) {

console.log("WebSocket connected")

});

}

onErrorStringChanged: {

console.log(qsTr("Server error: %1").arg(errorString));

}

Component.onCompleted: console.log(url)

}

}

}

}

Если закрыть виртуалку, то в консоли появится такое сообщение:

2. Реализовать функциональность обмена простыми сообщениями между клиентом и сервером.

MainPage.qml

import QtQuick 2.6 import Sailfish.Silica 1.0 import QtWebSockets 1.0

Page{ Column {

width: parent.width height: parent.height // CLIENT Rectangle {

width: parent.width height: parent.height /2 color: 'lightblue'

WebSocket { id: socket

url: "ws://127.0.0.1:8080" onTextMessageReceived: function(message) {

messageBoxClient.text = messageBoxClient.text + "\nReceived message: " + message

}

onStatusChanged: if (socket.status === WebSocket.Error) { console.log("Error: " + socket.errorString)

}else if (socket.status === WebSocket.Open) { socket.sendTextMessage("Hello World")

}else if (socket.status === WebSocket.Closed) {

messageBoxClient.text += "\nSocket closed"

}

active: false

}

Text {

id: messageBoxClient

text: socket.status === WebSocket.Open ? qsTr("Sending...") : qsTr("Welcome!")

anchors.centerIn: parent

}

MouseArea { anchors.fill: parent onClicked: {

socket.active = !socket.active

}

}

}

// SERVER

Rectangle {

width: parent.width height: parent.height /2 color: 'pink'

WebSocketServer { id: server

listen: true port: 8080

onClientConnected: function(webSocket) { webSocket.onTextMessageReceived.connect(function(message) {

messageBoxServer.text += "\n" + qsTr("Server received message: %1").arg(message);

webSocket.sendTextMessage(qsTr("Hello Client!")); console.log("WebSocket connected")

});

}

onErrorStringChanged: {

messageBoxServer.text += "\n" + qsTr("Server error: %1").arg(errorString);

console.log(qsTr("Server error: %1").arg(errorString));

}

Component.onCompleted: console.log(url)

}

Text {

id: messageBoxServer anchors.centerIn: parent

}

}

}

}