일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- lua setup
- 육전국밥 #강남역맛집 #24시간맛집 #소고기국밥 #육전 #모둠전 #해물파전 #강남한식 #혼밥맛집 #강남역국밥
- 엑스퍼트2주년
- Lua
- #부동산전자거래 #부동산전자계약 #부동산계약 #부동산전자계약방법 #부동산전자계약하는법 #부동산계약방법 #부동산중개수수료 #부동산중개수수료아끼기 #부동산복비아끼기
- lua for windows
- 순남시래기 #교대맛집 #교대역맛집 #한식맛집 #시래기국 #서울맛집 #가성비맛집 #건강한식단 #셀프반찬 #직장인맛집
- 수도권주택공급
- 편편집 #강남역맛집 #강남샤브샤브 #강남무한리필 #편백찜맛집 #월남쌈맛집 #샤브샤브맛집 #가성비맛집 #강남회식 #강남데이트
- 강남역맛집 #육전국밥강남역점 #강남국밥맛집 #서울국밥추천 #강남육전맛집 #강남혼밥 #강남역점심 #서울국밥집 #강남수육국밥 #육전정식
- 엑스퍼트생일축하해
- 국토교통부
- lua interpreter
- C API
- 전동포 #송파구전기자전거 #전동킥보드수리 #모토벨로대리점 #전기자전거판매 #전동스쿠터수리 #배터리수리 #전기자전거수리 #송파구전동킥보드 #전동이동수단
- TCP/IP
- 등록임대주택
- 중소규모택지
- C++ API
- file write
- QT TCP
- FILE TRANSFER
- 티몬삼겹살데이
- 월세
- #신혼부부 #결혼준비 #신혼부부희망타운신혼부부특별공급
- QTcpServer
- lua install
- object
- 찾다죽는줄
- #서초구맛집 #교대역된장찌개 #옥된장교대점 #서초된장맛집 #교대직장인맛집 #된장찌개전문점 #서울된장정식 #혼밥맛집 #건강한한끼 #교대점심맛집
- Today
- Total
Value Creator의 IT(프로그래밍 / 전자제품)
#8 [QT4] Network programming - Client 본문
* QT4와 QT5의 소스코드는 호환이 되지 않으니 참고 바랍니다.
1. QtNetwork 모듈이 TCP/IP 클라이언트/서버를 사용할 수 있는 클래스를 제공함.
2. QtNetwork 모듈이 포함하는 클래스
QAbstractSocket --> QTcpSocket
3. QTcpSocket 클래스에서 사용하는 함수
read()
write()
readLine()
readAll()
((QIODevice 클래스에서 상속받은))
getChar()
putChar()
ungetChar()
데이터 전송 : byteWritten() 시그널을 통해 이벤트를 쉽게 호출
데이터 수신 : readyRead() 시그널을 통해 이벤트 제공
소켓 서비스 종료 : disconnectFromHost() 함수 호출, disconnected() 함수 호출
* 서버/클라이언트 간 요청과 응답을 위한 멤버 함수
waitForConnected() : 서버와 클라이언트가 연결될 때까지 블로킹
waitForReadyRead() : 새로운 데이터가 수신될 때까지 블로킹
waitForByteWritten() : 소켓으로부터 데이터가 전송될 때까지 블로킹
waitForDisconnected() : 함수는 연결이 닫힐 때까지 블로킹
4. Fortune Client, Fortune Server 예제(fortune : 랜덤함수 비슷하게 임의 값 도출하는 함수)
4.1 Fortune Client
https://doc.qt.io/archives/qt-4.8/qt-network-fortuneclient-example.html
Fortune Client Example | Qt 4.8
Fortune Client Example The example is intended to be run alongside the Fortune Server example or the Threaded Fortune Server example. This example uses a simple QDataStream-based data transfer protocol to request a line of text from a fortune server (from
doc.qt.io
Fortune Client <-> Fortune Server
클라이언트가 서버에게 메세지를 요청하면, 서버가 클라이언트에게 메세지를 내려준다.
데이터 전송 프로토콜 : QDataStream 사용하여 서버로부터 메세지 한 줄을 요청.
* 연결 절차
1) 서버로 연결하면서 fortune 요청(임의의 메세지 요청)
2) 서버는 16비트 integer 길이의 fortune 메세지 응답.
* QTcpSocket은 두 가지 접근 방법 제공.
1) 비동기 방식(non-blocking)
-> 제어가 Qt 루프 이벤트 반환시 스케줄되고 수행됨.
동작 완료시 신호 발생.
연결 완료시 QTcpSocket이 connected() 반환.
2) 동기 방식(blocking)
-> non-GUI, 멀티스레드 어플리케이션.
wiatFor...() 함수 호출 가능.
호출 스레드
5. 주석 달아놓은 소스코드
6. 아래는 원문

'1. 프로그래밍 > 3) QT' 카테고리의 다른 글
#11 QT 네트워크 소켓 프로그래밍 해석 (0) | 2019.06.17 |
---|---|
#9 [QT4] Network programming - Server (0) | 2019.06.14 |
#5 QT Creator 예제 - 계산기, 캘린더, 메모장 (0) | 2019.04.10 |
#4 QT Programming 예제(QListWidget, QComboBox, QTimer, QFileDialog, QGraphicsView, QTabWidget, QProgressBar) (0) | 2019.04.10 |
#3 QT Creator 예제 프로그램 (0) | 2019.04.09 |