[c++] 리눅스 환경에서의 C++ 소켓 프로그래밍

이번에는 C++을 사용하여 리눅스 환경에서 소켓 프로그래밍을 하는 방법에 대해 알아보겠습니다.

소켓 프로그래밍이란?

소켓 프로그래밍은 네트워크 통신을 위한 소켓을 생성하고 사용하여 데이터를 주고받는 프로그래밍 기술입니다.

C++에서의 소켓 프로그래밍

C++에서 소켓 프로그래밍을 하기 위해서는 socketbind, listen, accept 등의 함수를 사용하여 소켓을 생성하고 관리해야 합니다.

다음은 간단한 TCP 서버와 클라이언트 예제 코드입니다.

TCP 서버

#include <iostream>
#include <string>
#include <sys/socket.h>
#include <netinet/in.h>

int main() {
    int server_fd, new_socket;
    struct sockaddr_in address;
    
    server_fd = socket(AF_INET, SOCK_STREAM, 0);
    
    address.sin_family = AF_INET;
    address.sin_addr.s_addr = INADDR_ANY;
    address.sin_port = htons(8080);
    
    bind(server_fd, (struct sockaddr *)&address, sizeof(address));
    listen(server_fd, 3);
    
    new_socket = accept(server_fd, (struct sockaddr *)NULL, NULL);
    
    // 클라이언트와의 통신 코드 작성

    return 0;
}

TCP 클라이언트

#include <iostream>
#include <string>
#include <sys/socket.h>
#include <netinet/in.h>

int main() {
    int sock = 0;
    struct sockaddr_in serv_addr;

    sock = socket(AF_INET, SOCK_STREAM, 0);

    serv_addr.sin_family = AF_INET;
    serv_addr.sin_port = htons(8080);

    // 서버에 연결하는 코드 작성

    return 0;
}

마무리

이렇게 C++을 사용하여 소켓 프로그래밍을 할 수 있습니다. 네트워크 통신을 위한 기본 기술이므로 꼭 알고 있어야 합니다. 더 많은 내용을 배우고 싶다면 관련 자료를 찾아보시기 바랍니다.