
소켓 주소 구조체는 소켓을 식별하기 위해 사용되는 구조체입니다. 소켓 주소 구조체는 소켓 주소 구조체 유형에 따라 다르지만, 일반적으로 다음과 같은 구조를 가집니다.
- 소켓 주소 구조체 유형은 AF_INET (IPv4) 또는 AF_INET6 (IPv6) 중 하나입니다.
- 소켓 주소 구조체에는 소켓 주소 구조체 유형에 따라 다르지만, 일반적으로 다음과 같은 멤버가 있습니다.
- sa_family_t: 소켓 주소 구조체 유형을 나타내는 필드입니다.
- sa_data: 소켓 주소 구조체에 포함된 데이터를 나타내는 필드입니다.
소켓 주소 구조체를 사용하여 데이터를 전송하는 방법은 다음과 같습니다.
1. 소켓 주소 구조체를 선언하고 초기화합니다.
2. 소켓 주소 구조체의 멤버를 설정합니다.
3. 소켓 주소 구조체를 소켓_sendto 함수에 전달합니다.
예를 들어, IPv4 소켓 주소 구조체를 선언하고 초기화하는 방법은 다음과 같습니다.
#hostingforum.kr
c
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(1234);
inet_pton(AF_INET, "192.168.1.100", &addr.sin_addr);
이러한 소켓 주소 구조체를 소켓_sendto 함수에 전달하여 데이터를 전송할 수 있습니다.
#hostingforum.kr
c
int sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *addr, socklen_t addrlen);
예를 들어, 다음과 같이 소켓 주소 구조체를 소켓_sendto 함수에 전달하여 데이터를 전송할 수 있습니다.
#hostingforum.kr
c
int sockfd;
const char *buf = "Hello, World!";
size_t len = strlen(buf);
int flags = 0;
struct sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(1234);
inet_pton(AF_INET, "192.168.1.100", &addr.sin_addr);
socklen_t addrlen = sizeof(addr);
sendto(sockfd, buf, len, flags, (struct sockaddr *)&addr, addrlen);
2025-04-29 14:23