socket은 좀더 찾아 봐야 할 것 같은데
내부통신이 아닌 외부장치와의 통신은 qt quick / qml 에서 어떻게 구현되는지 궁금해짐

| qmlwebsocketserver main.qml | qmlwebsocketclient main.qml |
| // Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Milian Wolff <milian.wolff@kdab.com> // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause import QtQuick import QtWebSockets Rectangle { width: 360 height: 360 function appendMessage(message) { messageBox.text += "\n" + message } WebSocketServer { id: server listen: true onClientConnected: function(webSocket) { webSocket.onTextMessageReceived.connect(function(message) { appendMessage(qsTr("Server received message: %1").arg(message)); webSocket.sendTextMessage(qsTr("Hello Client!")); }); } onErrorStringChanged: { appendMessage(qsTr("Server error: %1").arg(errorString)); } } WebSocket { id: socket url: server.url onTextMessageReceived: function(message) { appendMessage(qsTr("Client received message: %1").arg(message)); } onStatusChanged: { if (socket.status == WebSocket.Error) { appendMessage(qsTr("Client error: %1").arg(socket.errorString)); } else if (socket.status == WebSocket.Closed) { appendMessage(qsTr("Client socket closed.")); } } } Timer { interval: 100 running: true onTriggered: { socket.active = true; } } Text { id: messageBox text: qsTr("Click to send a message!") anchors.fill: parent MouseArea { anchors.fill: parent onClicked: { socket.sendTextMessage(qsTr("Hello Server!")); } } } } |
// Copyright (C) 2016 Kurt Pattyn <pattyn.kurt@gmail.com>. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause import QtQuick import QtWebSockets Rectangle { width: 640 height: 360 WebSocket { id: socket url: "ws://ws.ifelse.io" onTextMessageReceived: function(message) { messageBox.text = messageBox.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) { messageBox.text += "\nSocket closed" } active: false } WebSocket { id: secureWebSocket url: "wss://ws.ifelse.io" onTextMessageReceived: function(message) { messageBox.text = messageBox.text + "\nReceived secure message: " + message } onStatusChanged: if (secureWebSocket.status == WebSocket.Error) { console.log("Error: " + secureWebSocket.errorString) } else if (secureWebSocket.status == WebSocket.Open) { secureWebSocket.sendTextMessage("Hello Secure World") } else if (secureWebSocket.status == WebSocket.Closed) { messageBox.text += "\nSecure socket closed" } active: false } Text { id: messageBox text: socket.status == WebSocket.Open ? qsTr("Sending...") : qsTr("Welcome!") anchors.centerIn: parent } MouseArea { anchors.fill: parent onClicked: { socket.active = !socket.active secureWebSocket.active = !secureWebSocket.active; //Qt.quit(); } } } |
다른 예제
'Programming > qt' 카테고리의 다른 글
| qt qml loader (0) | 2026.01.14 |
|---|---|
| qstackedwidget, qstackedlayout (0) | 2026.01.13 |
| qt quick 예제 calqlatr 코드분석 (0) | 2026.01.13 |
| qt qml view (0) | 2026.01.13 |
| qt quick 이미지 클릭 (0) | 2026.01.12 |
