[c언어] 네트워크 데이터 전송
C언어를 사용하여 네트워크를 통해 데이터를 전송하는 방법에 대해 알아보겠습니다.
네트워크 통신을 위한 라이브러리
C언어에서 네트워크 통신을 하려면 socket
라이브러리를 사용해야 합니다. 이 라이브러리를 이용하여 서버와 클라이언트 간의 데이터 통신이 가능합니다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
위와 같이 socket
관련 라이브러리들을 include하여 사용할 수 있습니다.
클라이언트 코드 예시
아래는 간단한 클라이언트 코드 예시입니다.
int main() {
int network_socket;
network_socket = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in server_address;
server_address.sin_family = AF_INET;
server_address.sin_port = htons(9002);
server_address.sin_addr.s_addr = INADDR_ANY;
int connection_status = connect(network_socket, (struct sockaddr *)&server_address, sizeof(server_address));
if (connection_status == -1) {
printf("네트워크 연결 실패\n");
}
close(network_socket);
return 0;
}
위 코드는 서버에 접속하기 위한 간단한 클라이언트 코드입니다.
서버 코드 예시
아래는 간단한 서버 코드 예시입니다.
int main() {
char server_message[256] = "네트워크와 통신하고 있습니다!";
int server_socket;
server_socket = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in server_address;
server_address.sin_family = AF_INET;
server_address.sin_port = htons(9002);
server_address.sin_addr.s_addr = INADDR_ANY;
bind(server_socket, (struct sockaddr *)&server_address, sizeof(server_address));
listen(server_socket, 5);
int client_socket;
client_socket = accept(server_socket, NULL, NULL);
send(client_socket, server_message, sizeof(server_message), 0);
close(server_socket);
return 0;
}
위 코드는 클라이언트로부터의 연결을 받고, 클라이언트에게 메시지를 전송하는 간단한 서버 코드입니다.
결론
C언어를 사용하여 네트워크를 통해 데이터를 전송하는 방법에 대해 알아보았습니다. socket
라이브러리를 이용하여 클라이언트와 서버 간의 통신이 가능하며, 위 예시 코드를 참고하여 네트워크 프로그래밍을 시작해 볼 수 있습니다.
더 자세한 정보는 GNU C Library나 유닉스 네트워크 프로그래밍 같은 서적을 참고하시기 바랍니다.