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(QObject *parent = nullptr)
virtual ~QSctpServer()
int maximumChannelCount() const
QSctpSocket *nextPendingDatagramConnection()
void setMaximumChannelCount(int count)

재구현된 보호 함수

virtual void incomingConnection(qintptr socketDescriptor) override

상세 설명

SCTP(스트림 제어 전송 프로토콜)는 널리 사용되는 프로토콜인 TCP 및 UDP와 유사한 역할을 하는 전송 계층 프로토콜입니다. UDP와 마찬가지로 SCTP는 메시지 지향적이지만 TCP와 같은 혼잡 제어 기능을 통해 안정적인 메시지 전송을 보장합니다. 프로토콜에 대한 자세한 내용은 QSctpSocket 문서를 참조하세요.

QSctpServer는 QTcpServer 의 편리한 서브클래스로, TCP 에뮬레이션 또는 데이터그램 모드에서 들어오는 SCTP 소켓 연결을 수락할 수 있게 해줍니다.

가장 일반적인 사용 방법은 setMaximumChannelCount()를 호출하여 개체를 구성하고 서버가 지원할 준비가 된 최대 채널 수를 설정하는 것입니다. 이 호출에서 음수 인수를 전달하여 TCP 에뮬레이션 모드를 설정할 수 있습니다. 또한 특수 값 0(기본값)은 피어의 값을 실제 채널 수로 사용하도록 지정합니다. 새로 들어오는 연결은 서버 소켓 설명자로부터 이 번호를 상속받아 원격 엔드포인트 설정에 따라 조정합니다.

TCP 에뮬레이션 모드에서 수락된 클라이언트는 데이터 전송을 위해 단일 연속 바이트 스트림을 사용하며, QSctpServer는 일반 QTcpServer 처럼 작동합니다. nextPendingConnection ()를 호출하여 보류 중인 연결을 연결된 QTcpSocket 으로 수락합니다. 이 함수는 클라이언트와 통신하는 데 사용할 수 있는 QAbstractSocket::ConnectedStateQTcpSocket 에 대한 포인터를 반환합니다. 이 모드에서는 기본 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 소켓 설명자).

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도 참조하세요 .

© 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.