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 |