[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유닉스 네트워크 프로그래밍 같은 서적을 참고하시기 바랍니다.