
socket_getsockname 함수는 소켓에 대한 주소와 포트번호를 얻는 데 사용됩니다.
이 함수를 호출하려면, 먼저 소켓을 열어야 합니다. 소켓을 열 때, 소켓 주소 구조체를 초기화하여 주소와 포트번호를 저장합니다.
예시 코드는 다음과 같습니다.
#hostingforum.kr
c
#include
#include
#include
#include
int main() {
int sock;
struct sockaddr_in addr;
// 소켓을 열기
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
perror("socket");
return 1;
}
// 소켓 주소 구조체 초기화
addr.sin_family = AF_INET;
addr.sin_port = htons(8080); // 포트번호
inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr); // IP 주소
// 소켓에 주소 할당
if (bind(sock, (struct sockaddr*)&addr, sizeof(addr)) < 0) {
perror("bind");
return 1;
}
// 소켓 주소와 포트번호 얻기
socklen_t len = sizeof(addr);
if (getsockname(sock, (struct sockaddr*)&addr, &len) < 0) {
perror("getsockname");
return 1;
}
// 주소와 포트번호 출력
printf("주소: %s:%dn", inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));
return 0;
}
이 코드에서는 소켓을 열고 주소 할당을 통해 소켓 주소 구조체에 주소와 포트번호를 저장합니다. 그런 다음, `getsockname` 함수를 사용하여 소켓 주소와 포트번호를 얻고 출력합니다.
2025-03-24 00:37