QLocalSocket Class
QLocalSocket 클래스는 로컬 소켓을 제공합니다. 더 보기...
헤더: | #include <QLocalSocket> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Network) target_link_libraries(mytarget PRIVATE Qt6::Network) |
qmake: | QT += network |
상속합니다: | QIODevice |
공용 유형
enum | LocalSocketError { ConnectionRefusedError, PeerClosedError, ServerNotFoundError, SocketAccessError, SocketResourceError, …, UnknownSocketError } |
enum | LocalSocketState { UnconnectedState, ConnectingState, ConnectedState, ClosingState } |
(since 6.2) enum | SocketOption { NoOptions, AbstractNamespaceOption } |
flags | SocketOptions |
속성
(since 6.2)
socketOptions : SocketOptions
공용 함수
QLocalSocket(QObject *parent = nullptr) | |
virtual | ~QLocalSocket() |
void | abort() |
QBindable<QLocalSocket::SocketOptions> | bindableSocketOptions() |
void | connectToServer(QIODeviceBase::OpenMode openMode = ReadWrite) |
void | connectToServer(const QString &name, QIODeviceBase::OpenMode openMode = ReadWrite) |
void | disconnectFromServer() |
QLocalSocket::LocalSocketError | error() const |
bool | flush() |
QString | fullServerName() const |
bool | isValid() const |
qint64 | readBufferSize() const |
QString | serverName() const |
void | setReadBufferSize(qint64 size) |
void | setServerName(const QString &name) |
bool | setSocketDescriptor(qintptr socketDescriptor, QLocalSocket::LocalSocketState socketState = ConnectedState, QIODeviceBase::OpenMode openMode = ReadWrite) |
void | setSocketOptions(QLocalSocket::SocketOptions option) |
qintptr | socketDescriptor() const |
QLocalSocket::SocketOptions | socketOptions() const |
QLocalSocket::LocalSocketState | state() const |
bool | waitForConnected(int msecs = 30000) |
bool | waitForDisconnected(int msecs = 30000) |
재구현된 공용 함수
virtual qint64 | bytesAvailable() const override |
virtual qint64 | bytesToWrite() const override |
virtual bool | canReadLine() const override |
virtual void | close() override |
virtual bool | isSequential() const override |
virtual bool | open(QIODeviceBase::OpenMode openMode = ReadWrite) override |
virtual bool | waitForBytesWritten(int msecs = 30000) override |
virtual bool | waitForReadyRead(int msecs = 30000) override |
신호
void | connected() |
void | disconnected() |
void | errorOccurred(QLocalSocket::LocalSocketError socketError) |
void | stateChanged(QLocalSocket::LocalSocketState socketState) |
재구현된 보호 함수
virtual qint64 | readData(char *data, qint64 c) override |
virtual qint64 | readLineData(char *data, qint64 maxSize) override |
virtual qint64 | skipData(qint64 maxSize) override |
virtual qint64 | writeData(const char *data, qint64 c) override |
상세 설명
Windows에서는 명명된 파이프이고, Unix에서는 로컬 도메인 소켓입니다.
오류가 발생하면 error()는 오류 유형을 반환하고 errorString()를 호출하여 사람이 읽을 수 있는 설명을 얻을 수 있습니다.
QLocalSocket은 이벤트 루프와 함께 사용하도록 설계되었지만 이벤트 루프 없이도 사용할 수 있습니다. 이 경우 waitForConnected(), waitForReadyRead(), waitForBytesWritten() 및 waitForDisconnected()를 사용하여 작업이 완료되거나 시간 초과가 만료될 때까지 차단해야 합니다.
QLocalServer 를참조하세요 .
회원 유형 문서
enum QLocalSocket::LocalSocketError
LocalServerError 열거형은 발생할 수 있는 오류를 나타냅니다. 가장 최근 오류는 QLocalSocket::error() 호출을 통해 검색할 수 있습니다.
상수 | 값 | 설명 |
---|---|---|
QLocalSocket::ConnectionRefusedError | QAbstractSocket::ConnectionRefusedError | 피어에 의해 연결이 거부되었습니다(또는 시간 초과). |
QLocalSocket::PeerClosedError | QAbstractSocket::RemoteHostClosedError | 원격 소켓이 연결을 닫았습니다. 클라이언트 소켓(즉, 이 소켓)은 원격 닫기 알림이 전송된 후에 닫힙니다. |
QLocalSocket::ServerNotFoundError | QAbstractSocket::HostNotFoundError | 로컬 소켓 이름을 찾을 수 없습니다. |
QLocalSocket::SocketAccessError | QAbstractSocket::SocketAccessError | 애플리케이션에 필요한 권한이 없기 때문에 소켓 작업이 실패했습니다. |
QLocalSocket::SocketResourceError | QAbstractSocket::SocketResourceError | 로컬 시스템에 리소스가 부족합니다(예: 소켓이 너무 많음). |
QLocalSocket::SocketTimeoutError | QAbstractSocket::SocketTimeoutError | 소켓 작업이 시간 초과되었습니다. |
QLocalSocket::DatagramTooLargeError | QAbstractSocket::DatagramTooLargeError | 데이터그램이 운영 체제의 제한(8192바이트까지 가능)보다 큽니다. |
QLocalSocket::ConnectionError | QAbstractSocket::NetworkError | 연결에 오류가 발생했습니다. |
QLocalSocket::UnsupportedSocketOperationError | QAbstractSocket::UnsupportedSocketOperationError | 요청된 소켓 작업이 로컬 운영 체제에서 지원되지 않습니다. |
QLocalSocket::OperationError | QAbstractSocket::OperationError | 소켓이 허용되지 않는 상태인 동안 작업을 시도했습니다. |
QLocalSocket::UnknownSocketError | QAbstractSocket::UnknownSocketError | 확인되지 않은 오류가 발생했습니다. |
enum QLocalSocket::LocalSocketState
이 열거형은 소켓이 될 수 있는 다양한 상태를 설명합니다.
Constant | 값 | 설명 |
---|---|---|
QLocalSocket::UnconnectedState | QAbstractSocket::UnconnectedState | 소켓이 연결되지 않았습니다. |
QLocalSocket::ConnectingState | QAbstractSocket::ConnectingState | 소켓이 연결 설정을 시작했습니다. |
QLocalSocket::ConnectedState | QAbstractSocket::ConnectedState | 연결이 설정되었습니다. |
QLocalSocket::ClosingState | QAbstractSocket::ClosingState | 소켓이 닫히려는 중입니다(데이터가 아직 쓰기를 기다리고 있을 수 있음). |
QLocalSocket::state()도 참조하세요 .
[since 6.2]
열거형 QLocalSocket::소켓 옵션
플래그 QLocalSocket::소켓 옵션
이 열거형은 서버에 연결하는 데 사용할 수 있는 가능한 옵션을 설명합니다. 현재 Linux와 Android에서는 추상 주소에 바인딩된 소켓을 수신하는 서버에 대한 연결을 지정하는 데 사용됩니다.
Constant | 값 | 설명 |
---|---|---|
QLocalSocket::NoOptions | 0x00 | 설정된 옵션이 없습니다. |
QLocalSocket::AbstractNamespaceOption | 0x01 | 소켓이 추상 주소에 연결을 시도합니다. 이 플래그는 Linux 및 Android에만 해당됩니다. 다른 플랫폼에서는 무시됩니다. |
이 열거형은 Qt 6.2에 도입되었습니다.
SocketOptions 형은 QFlags<SocketOption>에 대한 typedef입니다. SocketOption 값의 OR 조합을 저장합니다.
socketOptions 를참조하십시오 .
속성 문서
[bindable, since 6.2]
socketOptions : SocketOptions
참고: 이 속성은 QProperty 바인딩을 지원합니다.
이 속성은 소켓 옵션을 보유합니다.
옵션은 소켓이 UnconnectedState 상태일 때 설정해야 합니다.
이 프로퍼티는 Qt 6.2에 도입되었습니다.
액세스 함수:
QLocalSocket::SocketOptions | socketOptions() const |
void | setSocketOptions(QLocalSocket::SocketOptions option) |
connectToServer()도 참조하십시오 .
멤버 함수 문서
QLocalSocket::QLocalSocket(QObject *parent = nullptr)
새 로컬 소켓을 생성합니다. parent 인수는 QObject 의 생성자에게 전달됩니다.
[virtual noexcept]
QLocalSocket::~QLocalSocket()
소켓을 파괴하고 필요한 경우 연결을 닫습니다.
void QLocalSocket::abort()
현재 연결을 중단하고 소켓을 재설정합니다. disconnectFromServer ()와 달리 이 함수는 즉시 소켓을 닫고 쓰기 버퍼의 보류 중인 데이터를 모두 지웁니다.
disconnectFromServer() 및 close()도 참조하세요 .
[override virtual]
qint64 QLocalSocket::bytesAvailable() const
재구현합니다: QIODevice::bytesAvailable() const.
[override virtual]
qint64 QLocalSocket::bytesToWrite() const
재구현합니다: QIODevice::bytesToWrite() const.
[override virtual]
bool QLocalSocket::canReadLine() const
재구현합니다: QIODevice::canReadLine() const.
[override virtual]
void QLocalSocket::close()
다시 구현합니다: QIODevice::close().
소켓에 대한 I/O 장치를 닫고 disconnectFromServer()를 호출하여 소켓의 연결을 닫습니다.
I/O 장치가 닫힐 때 발생하는 동작에 대한 설명은 QIODevice::close()를 참조하세요.
abort()도 참조하세요 .
void QLocalSocket::connectToServer(QIODeviceBase::OpenMode openMode = ReadWrite)
serverName()에 연결을 시도합니다. setServerName()를 호출해야 연결을 열 수 있습니다. 또는 connectToServer(const QString &name, OpenMode openMode)를 사용할 수 있습니다;
소켓은 주어진 openMode 에서 열리고 먼저 ConnectingState 으로 들어갑니다. 연결이 설정되면 QLocalSocket ConnectedState 으로 들어가고 connected()를 내보냅니다.
이 함수를 호출한 후 소켓은 errorOccurred()를 전송하여 오류가 발생했음을 알릴 수 있습니다.
state(), serverName() 및 waitForConnected()도 참조하세요 .
void QLocalSocket::connectToServer(const QString &name, QIODeviceBase::OpenMode openMode = ReadWrite)
과부하가 걸린 함수입니다.
name 서버를 설정하고 연결을 시도합니다.
소켓은 지정된 openMode 에서 열리고 먼저 ConnectingState 으로 들어갑니다. 연결이 설정되면 QLocalSocket 은 ConnectedState 을 입력하고 connected()를 내보냅니다.
이 함수를 호출한 후 소켓은 errorOccurred()를 전송하여 오류가 발생했음을 알릴 수 있습니다.
state(), serverName() 및 waitForConnected()도 참조하세요 .
[signal]
void QLocalSocket::connected()
이 신호는 connectToServer()가 호출되고 연결이 성공적으로 설정된 후에 전송됩니다.
connectToServer() 및 disconnected()도 참조하세요 .
void QLocalSocket::disconnectFromServer()
소켓을 닫으려고 시도합니다. 쓰기를 기다리는 대기 중인 데이터가 있는 경우 QLocalSocket 은 ClosingState 으로 들어가 모든 데이터가 쓰여질 때까지 기다립니다. 결국 UnconnectedState 으로 들어가 disconnected() 신호를 내보냅니다.
connectToServer()도 참조하세요 .
[signal]
void QLocalSocket::disconnected()
이 신호는 소켓 연결이 끊어졌을 때 방출됩니다.
connectToServer(), disconnectFromServer(), abort() 및 connected()도 참조하세요 .
QLocalSocket::LocalSocketError QLocalSocket::error() const
마지막으로 발생한 오류 유형을 반환합니다.
state() 및 errorString()도 참조하세요 .
[signal]
void QLocalSocket::errorOccurred(QLocalSocket::LocalSocketError socketError)
이 신호는 오류가 발생한 후에 전송됩니다. socketError 매개변수는 발생한 오류 유형을 설명합니다.
QLocalSocket::LocalSocketError 는 등록된 메타타입이 아니므로 대기 중인 연결의 경우 Q_DECLARE_METATYPE() 및 qRegisterMetaType()로 등록해야 합니다.
error(), errorString() 및 사용자 정의 Qt 유형 만들기를참조하십시오 .
bool QLocalSocket::flush()
이 함수는 차단하지 않고 내부 쓰기 버퍼에서 소켓으로 가능한 한 많이 씁니다. 데이터가 쓰여진 경우 이 함수는 true
을 반환하고, 그렇지 않으면 false를 반환합니다.
버퍼링된 데이터를 즉시 전송하기 위해 QLocalSocket 이 필요한 경우 이 함수를 호출하세요. 성공적으로 기록되는 바이트 수는 운영 체제에 따라 다릅니다. 대부분의 경우 제어가 이벤트 루프로 돌아가면 QLocalSocket 이 자동으로 데이터 전송을 시작하므로 이 함수를 호출할 필요가 없습니다. 이벤트 루프가 없는 경우에는 waitForBytesWritten()를 대신 호출하세요.
write() 및 waitForBytesWritten()도 참조하세요 .
QString QLocalSocket::fullServerName() const
소켓이 연결된 서버 경로를 반환합니다.
참고: 이 함수의 반환 값은 플랫폼에 따라 다릅니다.
connectToServer() 및 serverName()도 참조하세요 .
[override virtual]
bool QLocalSocket::isSequential() const
재구현합니다: QIODevice::isSequential() const.
bool QLocalSocket::isValid() const
소켓이 유효하고 사용할 준비가 되면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
참고: 소켓의 상태가 ConnectedState 여야 읽기 및 쓰기가 가능합니다.
state() 및 connectToServer()도 참조하세요 .
[override virtual]
bool QLocalSocket::open(QIODeviceBase::OpenMode openMode = ReadWrite)
다시 구현합니다: QIODevice::open(QIODeviceBase::OpenMode 모드).
connectToServer(OpenMode 모드)와 동일합니다. 소켓은 주어진 openMode 에서 setServerName()에 정의된 서버로 열립니다.
대부분의 다른 QIODevice 서브클래스와 달리 open()은 장치를 직접 열지 않을 수 있습니다. 소켓이 이미 연결되어 있거나 연결할 서버가 정의되지 않은 경우 이 함수는 거짓을 반환하고, 그 외의 경우에는 참을 반환합니다. connected () 또는 errorOccurred() 신호는 디바이스가 실제로 열리면(또는 연결에 실패하면) 전송됩니다.
자세한 내용은 connectToServer()를 참조하세요.
qint64 QLocalSocket::readBufferSize() const
내부 읽기 버퍼의 크기를 반환합니다. 이는 read() 또는 readAll()을 호출하기 전에 클라이언트가 수신할 수 있는 데이터의 양을 제한합니다. 읽기 버퍼 크기가 0(기본값)이면 버퍼에 크기 제한이 없으므로 데이터가 손실되지 않습니다.
setReadBufferSize() 및 read()도 참조하세요 .
[override virtual protected]
qint64 QLocalSocket::readData(char *data, qint64 c)
다시 구현합니다: QIODevice::readData(문자 *데이터, qint64 maxSize).
[override virtual protected]
qint64 QLocalSocket::readLineData(char *data, qint64 maxSize)
다시 구현합니다: QIODevice::readLineData(문자 *데이터, qint64 maxSize).
QString QLocalSocket::serverName() const
setServerName()에 지정된 대로 피어 이름을 반환하거나 setServerName()가 호출되지 않았거나 connectToServer()가 실패한 경우 빈 QString 을 반환합니다.
setServerName(), connectToServer() 및 fullServerName()도 참조하세요 .
void QLocalSocket::setReadBufferSize(qint64 size)
QLocalSocket 의 내부 읽기 버퍼 크기를 size 바이트로 설정합니다.
버퍼 크기가 특정 크기로 제한되어 있는 경우 QLocalSocket 은 이 크기 이상의 데이터를 버퍼링하지 않습니다. 예외적으로 버퍼 크기가 0이면 읽기 버퍼가 무제한이며 들어오는 모든 데이터가 버퍼링됩니다. 이것이 기본값입니다.
이 옵션은 특정 시점(예: 실시간 스트리밍 애플리케이션)에만 데이터를 읽거나 너무 많은 데이터를 수신하여 결국 애플리케이션의 메모리가 부족해질 수 있는 경우 소켓을 보호하려는 경우에 유용합니다.
readBufferSize() 및 read()도 참조하세요 .
void QLocalSocket::setServerName(const QString &name)
연결할 피어의 name 을 설정합니다. Windows에서는 이름이 명명된 파이프의 이름이고, Unix에서는 이름이 로컬 도메인 소켓의 이름입니다.
이 함수는 소켓이 연결되어 있지 않을 때 호출해야 합니다.
serverName()도 참조하세요 .
bool QLocalSocket::setSocketDescriptor(qintptr socketDescriptor, QLocalSocket::LocalSocketState socketState = ConnectedState, QIODeviceBase::OpenMode openMode = ReadWrite)
네이티브 소켓 기술자 socketDescriptor 를 사용하여 QLocalSocket 를 초기화합니다. socketDescriptor 이 유효한 소켓 기술자로 받아들여지면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다. 소켓은 openMode 에 지정된 모드로 열리고 socketState 에 지정된 소켓 상태로 들어갑니다.
참고: 동일한 네이티브 소켓 기술자로 두 개의 로컬 소켓을 초기화할 수 없습니다.
socketDescriptor(), state() 및 openMode()도 참조하세요 .
[override virtual protected]
qint64 QLocalSocket::skipData(qint64 maxSize)
다시 구현합니다: QIODevice::skipData(qint64 maxSize).
qintptr QLocalSocket::socketDescriptor() const
사용 가능한 경우 QLocalSocket 객체의 네이티브 소켓 기술자를 반환하고, 그렇지 않으면 -1을 반환합니다.
QLocalSocket 이 UnconnectedState 에 있는 경우 소켓 기술자를 사용할 수 없습니다. 디스크립터의 유형은 플랫폼에 따라 다릅니다:
- Windows에서 반환되는 값은 Winsock 2 소켓 핸들입니다.
- INTEGRITY에서 반환되는 값은 QTcpSocket 소켓 기술자이며 유형은 socketDescriptor 에 의해 정의됩니다.
- 다른 모든 UNIX 계열 운영 체제에서 유형은 소켓을 나타내는 파일 기술자입니다.
setSocketDescriptor()도 참조하세요 .
QLocalSocket::LocalSocketState QLocalSocket::state() const
소켓의 상태를 반환합니다.
error()도 참조하세요 .
[signal]
void QLocalSocket::stateChanged(QLocalSocket::LocalSocketState socketState)
이 신호는 QLocalSocket 의 상태가 변경될 때마다 전송됩니다. socketState 매개변수는 새로운 상태입니다.
QLocalSocket::SocketState는 등록된 메타타입이 아니므로 큐에 대기 중인 연결의 경우 Q_DECLARE_METATYPE() 및 qRegisterMetaType()로 등록해야 합니다.
state() 및 사용자 정의 Qt 유형 만들기를참조하십시오 .
[override virtual]
bool QLocalSocket::waitForBytesWritten(int msecs = 30000)
다시 구현합니다: QIODevice::waitForBytesWritten(int msecs).
bool QLocalSocket::waitForConnected(int msecs = 30000)
소켓이 연결될 때까지 최대 msecs 밀리초까지 기다립니다. 연결이 설정되면 이 함수는 true
을 반환하고, 그렇지 않으면 false
을 반환합니다. false
을 반환하는 경우 error()을 호출하여 오류의 원인을 확인할 수 있습니다.
다음 예는 연결이 설정될 때까지 최대 1초 동안 기다립니다:
socket->connectToServer("market");if (socket->waitForConnected(1000)) qDebug("Connected!");
msecs 이 -1이면 이 함수는 시간 초과되지 않습니다.
connectToServer() 및 connected()도 참조하세요 .
bool QLocalSocket::waitForDisconnected(int msecs = 30000)
소켓 연결이 끊어질 때까지 최대 msecs 밀리초까지 기다립니다. 연결이 성공적으로 끊어지면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다(작업 시간이 초과되었거나 오류가 발생했거나 QLocalSocket 이미 연결이 끊어진 경우). false
을 반환하는 경우 error()을 호출하여 오류의 원인을 확인할 수 있습니다.
다음 예는 연결이 종료될 때까지 최대 1초 동안 기다립니다:
socket->disconnectFromServer();if (socket->state()==. QLocalSocket::UnconnectedState || socket->waitForDisconnected(1000)) { qDebug("Disconnected!");
msecs 이 -1이면 이 함수는 시간 초과되지 않습니다.
disconnectFromServer() 및 close()도 참조하세요 .
[override virtual]
bool QLocalSocket::waitForReadyRead(int msecs = 30000)
다시 구현합니다: QIODevice::waitForReadyRead(int msecs).
이 함수는 데이터를 읽을 수 있고 readyRead() 신호가 전송될 때까지 차단합니다. 이 함수는 msecs 밀리초 후에 시간 초과되며, 기본 시간 초과 시간은 30000밀리초입니다.
이 함수는 데이터를 읽을 수 있는 경우 true
을 반환하고, 그렇지 않으면 false
(오류가 발생했거나 작업 시간이 초과된 경우)을 반환합니다.
waitForBytesWritten()도 참조하세요 .
[override virtual protected]
qint64 QLocalSocket::writeData(const char *data, qint64 c)
재구현합니다: QIODevice::writeData(const char *data, qint64 maxSize).
© 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.