Unix Domain Socket (UDS)


로컬시스템의 파일시스템을 이용하여 내부프로세스간 통신을 위해 사용한다.



INET 계층에서의 통신이 TCP/IP 4계층을 모두 거치는것과 다르게, UDS 는 어플리케이션 계층에서 TCP 계층까지만 메시지가 전달되고, 다시 곧바로 어플리케이션 계층으로 메시지가 올라가게된다.



범용적인 IPC 로써 사용가능한다.



Qt 에서는  QLocalSocket 이라는 클래스를 이용한다.




헤더파일 

#include <QLocalSocket> 

qmake 옵션 추가 

 QT+=network 

 사용가능한 버전

 Qt4.4 

 상속

 QIODevice 



Public Types



enumLocalSocketError { ConnectionRefusedError, PeerClosedError, ServerNotFoundError, SocketAccessError, ..., UnknownSocketError }
enumLocalSocketState { UnconnectedState, ConnectingState, ConnectedState, ClosingState }


시그널


voidconnected()
voiddisconnected()
voiderror(QLocalSocket::LocalSocketError socketError)
voidstateChanged(QLocalSocket::LocalSocketState socketState)



QLocalSocket 클래스는 local socket 기능을 제공한다.

윈도우환경에서는 pipe 라고하며 유닉스에서는 local domain socket 이라고 불린다.

에러가 벌생하면 socketError() 를 반환하며 타입은 error 이다. errorString() 함수는 사용자가 정의한 것을 리턴받을 수 있다.


QLocalSocket 는 이벤트 루프를 위해 디자인 되었지만, 다른 용도로 사용할 수 있다. 

 waitForConnected(), waitForReadyRead(), waitForBytesWritten(), and waitForDisconnected() which blocks until the operation is complete or the timeout expires.


서버 관련해서는 QLocalServer. 를 참고



예제는 localfortuneserver 를 참고한다.


! 도매인소켓사용시 해제를 잘해줘야됨


소켓 생성시 /tmp  (Linux) 위치에 도매인 내임이 생성된다.

kj@kj:/tmp$ ls -alh ivisDomain 

srwxr-xr-x 1 kj kj 0 12월 18 18:12 ivisDomain



이상!







'Qt > Network' 카테고리의 다른 글

[WAMP] 설치  (0) 2019.01.03
Wifi  (0) 2018.12.20
[Qt] 4K download 소스  (0) 2018.12.14

+ Recent posts