[c++] 리눅스 환경에서의 C++ 소켓 프로그래밍
이번에는 C++을 사용하여 리눅스 환경에서 소켓 프로그래밍을 하는 방법에 대해 알아보겠습니다.
소켓 프로그래밍이란?
소켓 프로그래밍은 네트워크 통신을 위한 소켓을 생성하고 사용하여 데이터를 주고받는 프로그래밍 기술입니다.
C++에서의 소켓 프로그래밍
C++에서 소켓 프로그래밍을 하기 위해서는 socket
및 bind
, 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++을 사용하여 소켓 프로그래밍을 할 수 있습니다. 네트워크 통신을 위한 기본 기술이므로 꼭 알고 있어야 합니다. 더 많은 내용을 배우고 싶다면 관련 자료를 찾아보시기 바랍니다.