네트워킹 및 연결

Qt는 하이 레벨 및 로우 레벨 네트워크 통신을 위한 클래스, 웹 통합을 위한 클래스, 프로세스 간 통신(IPC)을 위한 클래스를 제공합니다.

높은 수준의 네트워크 트래픽의 경우 Qt Network 는 사용되는 연산에 대한 추상화 계층을 제공하여 높은 수준의 클래스와 함수만 표시합니다. Qt Network 는 TCP 및 UDP와 같은 낮은 수준의 프로토콜도 처리할 수 있습니다. QTcpSocketQUdpSocket 같은 클래스를 사용하면 개발자가 TCP 또는 UDP 프로토콜을 사용하여 메시지를 주고받을 수 있습니다. 이름 확인은 QHostInfo 으로 수행되며 QHostInfoQTcpSocket 또는 QUdpSocket 으로 네트워크 연결을 만들기 전에 호출됩니다. 프록시를 통한 네트워크 트래픽 필터링과 재분배는 QNetworkProxy 클래스로 처리할 수 있습니다.

Qt는 다음과 같은 모듈을 사용하여 시스템이나 응용 프로그램을 연결할 수 있는 연결 옵션을 제공합니다. Qt Bluetooth와 같은 모듈을 사용하여 시스템이나 애플리케이션을 연결할 수 있는 연결 옵션을 제공합니다. Qt Serial Bus 는 다양한 산업용 직렬 버스와 프로토콜에 액세스하기 위한 클래스와 함수를 제공합니다. Qt NFC 는 NFC 지원 장치 간의 연결을 제공합니다. 또한 Qt Serial Port 는 구성, I/O 작업, RS-232 핀아웃의 제어 신호 가져오기 및 설정 등 기본 기능을 제공합니다.

Qt는 프로세스 간 통신을 위한 기능을 제공합니다. QProcess 클래스는 외부 프로그램을 시작하는 데 사용됩니다. Qt D-Bus 는 프로세스 간 통신 및 원격 프로시저 호출 메커니즘인 D-Bus를 지원합니다. 이것은 버스라고 불리는 중앙 서버 응용 프로그램을 통해 통신합니다. QSharedMemory 는 여러 스레드와 프로세스가 공유 메모리 세그먼트에 액세스할 수 있도록 합니다. 그러나 단일 프로세스는 해당 공유 메모리를 독점적으로 잠글 수 있습니다.

네트워크 통신

Qt는 HTTP, TCP, UDP를 중심으로 광범위한 네트워크 통신을 지원합니다.

HTTP 수준에서 Qt Network 모듈은 주로 QNetworkRequest, QNetworkAccessManager, QNetworkReply 로 구성된 네트워크 액세스 API를 제공합니다. QNetworkRequest 은 HTTP 요청과 유사하며, 이 요청은 QNetworkAccessManager 으로 전달되어 유선으로 요청을 전송하고, 이 클래스는 QNetworkReply 을 반환하여 HTTP 응답을 파싱할 수 있게 합니다. 네트워크 액세스 API는 내부적으로 아래 언급된 소켓 클래스를 사용합니다(TCP 및 SSL용).

QTcpSocket, QUdpSocket, QSslSocket 은 소켓 수준에서의 통신에 사용해야 합니다. 이러한 클래스는 waitFor* 메서드를 통한 동기 API와 비동기 API를 제공하며, 가능하면 (즉, 이벤트 루프가 실행 중인 경우) 항상 비동기 API를 선호해야 합니다. Qt는 또한 QTcpServer 를 제공하여 TCP 통신의 서버 측 부분을 활성화합니다.

SSL을 통한 보안 통신을 위해, Qt Network 은 중앙 QSslSocket 과 함께 다양한 클래스를 제공합니다. 예를 들어 QSslCertificate, QSslConfiguration, QSslError 등이 있습니다.

Qt는 또한 XmlHttpRequest를 통해 명시적으로 HTTP를 사용하거나 이미지 소스에서 HTTP URL을 투명하게 사용하는 방식으로 Qt Qml에서 HTTP 지원을 제공합니다.

관련 주제:

  • Qt를 사용한 네트워크 프로그래밍
  • 보안 소켓 계층(SSL) 클래스
  • 리소스 로딩 및 네트워크 투명성 - QML의 네트워크 및 URL 투명성
  • Qt Network 권한 부여 - Qt 애플리케이션이 사용자의 비밀번호를 노출하지 않고 온라인 계정 및 HTTP 서비스에 대한 제한된 액세스를 얻을 수 있도록 하는 API 집합입니다.
  • Qt Remote Objects - 프로세스 또는 컴퓨터 간의 정보 교환을 가능하게 하는 프로세스 간 통신(IPC) 모듈.
  • Qt MQTT - 게시 및 구독 패러다임을 사용하여 통신 오버헤드를 최소화하는 채널을 제공하는 M2M(머신 투 머신) 프로토콜.
  • Qt OPC UA - 참조로 연결된 노드들의 메시로 구성된 데이터에 대한 액세스를 제공하는 서버. 다양한 참조 유형과 메타데이터를 포함하는 노드를 사용하면 클라이언트는 구조를 미리 알지 못해도 데이터를 탐색하고 해석할 수 있습니다.
  • Qt WebSockets - 클라이언트 애플리케이션과 원격 호스트 간의 양방향 대화형 통신 세션을 가능하게 하도록 설계된 웹 기반 프로토콜입니다. 초기 핸드셰이크가 성공하면 두 엔티티가 데이터를 주고받을 수 있습니다.
  • Qt WebChannel - 서버(QML/C++ 애플리케이션)와 클라이언트(HTML/JavaScript 또는 QML 애플리케이션) 간의 피어투피어 통신을 활성화합니다. 이 기능은 Qt XML WebEngine 에서 기본적으로 지원됩니다. 또한 웹소켓을 지원하는 모든 브라우저에서 작동할 수 있으므로 Qt WebChannel 클라이언트를 모든 JavaScript 환경(QML 포함)에서 실행할 수 있습니다. 이를 위해서는 Qt WebSockets 에 기반한 사용자 정의 전송을 구현해야 합니다.
  • Qt Protobuf - .proto 파일에서 Qt 기반 클래스를 생성하는 데 사용할 수 있는 생성기입니다.
  • Qt GRPC - 를 사용하면 프로토 파일에서 데이터와 메시지를 정의한 다음 코드 생성기를 사용하여 Qt 프레임워크에서 필드 및 gRPC 서비스에 대한 접근자를 허용하는 코드를 생성할 수 있습니다.

연결성

Qt는 다음을 중심으로 다양한 연결 옵션을 지원합니다. Qt Serial Bus, Qt Serial Port, Qt BluetoothQt NFC.

  • Qt Serial Bus - 는 CAN, ModBus 등 다양한 산업용 직렬 버스와 프로토콜에 액세스하기 위한 클래스와 함수를 제공합니다.
  • Qt Serial Port - 는 구성, I/O 작업, RS-232 핀아웃의 제어 신호 가져오기 및 설정 등 기본 기능을 제공합니다.
  • Qt Bluetooth - 장치 검색, 정보 수집, 장치 간 데이터 교환 등 블루투스 장치를 사용하기 위한 클래스와 함수를 제공합니다. Qt Bluetooth 클래식 및 저에너지 블루투스 기술을 모두 지원합니다.
  • Qt NFC - NFC 지원 장치 간의 연결을 설정하는 클래스와 함수를 제공합니다. NFC는 최대 전송 속도가 424Kbps인 단거리(20센티미터 미만) 무선 기술입니다. NFC는 두 장치를 함께 배치할 때 작은 데이터 패킷을 전송하는 데 이상적입니다.

관련 주제:

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.