QSctpServer Class
QSctpServer 클래스는 SCTP 기반 서버를 제공합니다. 더 보기...
| 헤더: | #include <QSctpServer> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
| qmake: | QT += network |
| 상속: | QTcpServer |
- 상속된 멤버를 포함한 모든 멤버 목록
- QSctpServer는 네트워크 프로그래밍 API의 일부입니다.
공개 함수
| QSctpServer(QObject *parent = nullptr) | |
| virtual | ~QSctpServer() |
| int | maximumChannelCount() const |
| QSctpSocket * | nextPendingDatagramConnection() |
| void | setMaximumChannelCount(int count) |
재구현된 보호 함수
| virtual void | incomingConnection(qintptr socketDescriptor) override |
상세 설명
SCTP(Stream Control Transmission Protocol)는 널리 사용되는 TCP 및 UDP 프로토콜과 유사한 역할을 수행하는 전송 계층 프로토콜입니다. UDP와 마찬가지로 SCTP도 메시지 지향적이지만, TCP와 같은 혼잡 제어 기능을 통해 메시지의 안정적이고 순서대로 전송을 보장합니다. 프로토콜에 대한 자세한 내용은 QSctpSocket 문서를 참조하십시오.
QSctpServer는 QTcpServer 의 편리한 하위 클래스로, TCP 에뮬레이션 또는 데이터그램 모드에서 들어오는 SCTP 소켓 연결을 수락할 수 있게 해줍니다.
QSctpServer를 사용하는 가장 일반적인 방법은 객체를 생성하고 setMaximumChannelCount()를 호출하여 서버가 지원할 수 있는 최대 채널 수를 설정하는 것입니다. 이 호출에서 음수 인수를 전달하면 TCP 에뮬레이션 모드를 설정할 수 있습니다. 또한, 특수한 값인 0(기본값)을 지정하면 피어의 값을 실제 채널 수로 사용하도록 지시합니다. 새로 들어오는 연결은 서버 소켓 디스크립터로부터 이 수를 상속받으며, 원격 엔드포인트 설정에 따라 이를 조정합니다.
TCP 에뮬레이션 모드에서, 수락된 클라이언트는 데이터 전송을 위해 단일 연속 바이트 스트림을 사용하며, QSctpServer는 일반 QTcpServer 처럼 작동합니다. nextPendingConnection()를 호출하여 대기 중인 연결을 연결된 QTcpSocket 로 수락합니다. 이 함수는 클라이언트와의 통신에 사용할 수 있는 QAbstractSocket::ConnectedState 내의 QTcpSocket 에 대한 포인터를 반환합니다. 이 모드에서는 기본 SCTP 프로토콜 기능에만 액세스할 수 있습니다. 소켓은 시스템 수준에서 IP를 통해 SCTP 패킷을 전송하며, QTcpSocket 인터페이스를 통해 애플리케이션과 상호 작용합니다.
반면, 데이터그램 모드는 메시지 지향적이며, 엔드포인트 간에 여러 데이터 스트림을 완벽하게 동시 전송할 수 있게 해줍니다. nextPendingDatagramConnection()을 호출하여 대기 중인 데이터그램 모드 연결을 연결된 QSctpSocket 로 수락하십시오.
참고: 이 클래스는 Windows 플랫폼에서 지원되지 않습니다.
QTcpServer, QSctpSocket 및 QAbstractSocket도 참조하십시오 .
멤버 함수 설명서
[explicit] QSctpServer::QSctpServer(QObject *parent = nullptr)
QSctpServer 객체를 생성합니다.
데이터그램 작동 모드를 설정합니다. ` parent ` 인수는 ` QObject`의 생성자에 전달됩니다.
setMaximumChannelCount(), listen() 및 setSocketDescriptor()도 참조하십시오 .
[virtual noexcept] QSctpServer::~QSctpServer()
QSctpServer 객체를 삭제합니다. 서버가 연결을 수신 대기 중인 경우, 소켓이 자동으로 닫힙니다.
close()도 참조하십시오 .
[override virtual protected] void QSctpServer::incomingConnection(qintptr socketDescriptor)
QTcpServer::incomingConnection(qintptr socketDescriptor)를 재구현합니다.
int QSctpServer::maximumChannelCount() const
수락된 소켓이 지원할 수 있는 최대 채널 수를 반환합니다.
값이 0(기본값)인 경우, 연결 채널 수는 원격 엔드포인트에 의해 설정됩니다.
QSctpServer 가 TCP 에뮬레이션 모드로 실행 중인 경우 -1을 반환합니다.
setMaximumChannelCount()도 참조하십시오 .
QSctpSocket *QSctpServer::nextPendingDatagramConnection()
다음 대기 중인 데이터그램 모드 연결을 연결된 ` QSctpSocket ` 객체로 반환합니다.
데이터그램 모드 연결은 메시지 중심의 다중 스트림 통신을 제공합니다.
소켓은 서버의 자식으로서 생성되므로, QSctpServer 객체가 소멸되면 자동으로 삭제됩니다. 메모리 낭비를 방지하기 위해 사용을 마친 후에는 객체를 명시적으로 삭제하는 것이 좋습니다.
보류 중인 데이터그램 모드 연결이 없는 경우 이 함수는 null을 반환합니다.
참고: 반환된 QSctpSocket 객체는 다른 스레드에서 사용할 수 없습니다. 다른 스레드에서 수신 연결을 사용하려면 incomingConnection()을 재정의해야 합니다.
hasPendingConnections(), nextPendingConnection(), QSctpSocket도 참조하십시오 .
void QSctpServer::setMaximumChannelCount(int count)
서버가 데이터그램 모드에서 지원할 수 있는 최대 채널 수를 ` count`로 설정합니다. ` count `가 0인 경우, 엔드포인트의 최대 채널 수 값이 사용됩니다. 음수 값의 ` count `는 TCP 에뮬레이션 모드를 설정합니다.
이 메서드는 QSctpServer 가 UnconnectedState인 경우에만 호출해야 합니다.
maximumChannelCount() 및 QSctpSocket도 참조하십시오 .
© 2026 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.