★매우중요★ QT에서 TCP 통신 과정

2025. 9. 1. 22:27·NETWORK/Study

1. 준비

> QTcpServer : 서버 역할(연결 받아들이기)

> QTcpSocket : 클라이언트 역할(서버에 접속)


2. 서버

2.1 QTcpServer 생성

QTcpServer *server = new QTcpServer(this);

2.2 포트열기(listen)

server->listen(QHostAddress::Any, 12345);

2.3 새 연결 수신(newConnection 시그널 -> onNewConnection 슬롯함수)

connect(server, &QTcpServer::newConnection, this, &MyClass::onNewConnection);

2.4 클라이언트 소켓 꺼내기

void MyClass::onNewConnection() {
    QTcpSocket *client = server->nextPendingConnection();
    connect(client, &QTcpSocket::readyRead, this, &MyClass::onReadyRead);
}

2.5 데이터 주고 받기

> 읽기

void MyClass::onReadyRead() {
    QTcpSocket *client = qobject_cast<QTcpSocket*>(sender());
    QByteArray data = client->readAll();
    qDebug() << "받은 데이터:" << data;
}

> 쓰기

client->write("Hello Client!");

3. 클라이언트

3.1 QTcpSocket 생성

QTcpSocket *socket = new QTcpSocket(this);

3.2 서버 접속 요청

socket->connectToHost("127.0.0.1", 12345);

3.3 연결 확인

connect(socket, &QTcpSocket::connected, this, [](){
    qDebug() << "서버 연결 성공!";
});

3.4 데이터 주고 받기

> 보내기

socket->write("Hello Server!");

> 받기

connect(socket, &QTcpSocket::readyRead, this, [=](){
    QByteArray data = socket->readAll();
    qDebug() << "서버로부터 받은 데이터:" << data;
});

'NETWORK > Study' 카테고리의 다른 글

네트워크 03 : TCP/IP 인터넷 계층  (1) 2026.04.30
네트워크 02 : TCP/IP 네트워크 인터페이스 계층  (0) 2026.04.29
네트워크 01 : 네트워크(OSI 7 계층, TCP/IP 4 계층)  (0) 2026.04.28
★매우 중요★ / QT의 TCP 통신의 프로토콜 설계(프레이밍 및 파싱)  (0) 2025.09.01
TCP / IP 소켓 필수 함수 정리  (4) 2025.07.31
'NETWORK/Study' 카테고리의 다른 글
  • 네트워크 02 : TCP/IP 네트워크 인터페이스 계층
  • 네트워크 01 : 네트워크(OSI 7 계층, TCP/IP 4 계층)
  • ★매우 중요★ / QT의 TCP 통신의 프로토콜 설계(프레이밍 및 파싱)
  • TCP / IP 소켓 필수 함수 정리
m_Dev
m_Dev
  • m_Dev
    m_Dev
    m_Dev
  • 전체
    오늘
    어제
    • 분류 전체보기
      • MAIN STUDY
        • 정보보안
        • 빅데이터
        • 정보처리
        • 컴퓨터 구조
        • 기타
      • JOB
        • Study
        • Project
      • LMS 7
        • 개발일지
      • FRAMEWORK
        • Qt
        • MFC
        • Winform
        • WPF
        • MAUI
      • NETWORK
        • Study
        • Assignment
      • PYTHON
        • Set
        • Study
        • Assignment
        • Project
      • C
        • Set
        • Study
        • Assignment
        • Project
      • C++
        • Set
        • Study
        • Assignment
        • Project
      • C#
        • Set
        • Study
        • Assignment
        • Project
      • DATABASE
        • MySQL
        • SQLite
      • IDE
        • VisualStudioCode
        • VisualStudio
        • Pycharm
        • Colab
      • 기타
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
m_Dev
★매우중요★ QT에서 TCP 통신 과정
상단으로

티스토리툴바