getpeername()
int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
- sockfd: 정보를 얻고자 하는 소켓의 파일 디스크립터
- addr: 원격 호스트 주소 정보를 저장할 sockaddr 구조체 포인터. 주로 struct sockaddr_in 변수를 만들고 (struct sockaddr*)로 캐스팅하여 사용함
- addrlen: 구조체의 크기를 나타내는 변수 주소, sizeof 연산자 사용
사용 예시.
struct sockaddr_in serverAddr;
socklen_t addrLen = sizeof(serverAddr);
// 연결된 원격 호스트 정보 얻기
if (getpeername(sockfd, (struct sockaddr*)&serverAddr, &addrLen) == -1) {
perror("getpeername");
close(sockfd);
exit(EXIT_FAILURE);
}
printf("Remote IP Address: %s\n", inet_ntoa(serverAddr.sin_addr));
printf("Remote Port: %d\n", ntohs(serverAddr.sin_port));
'프로그래밍 > C' 카테고리의 다른 글
윈도우 소켓 ] select 입출력 모델 (0) | 2023.11.26 |
---|---|
Win32 API ] 이벤트 / CreateEvent, SetEvent, ResetEvent (0) | 2023.10.31 |
Win32 API ] waitForSingleObject, waitForMultipleObjects (0) | 2023.10.14 |
고해상도 타이머 QueryPerformanceFrequency, QueryPerformanceCounter (0) | 2023.10.09 |
윈도우 소켓 ] 논블로킹 소켓, ioctlsocket, 소켓 함수의 리턴 조건과 WSAEWOULDBLOCK이 리턴되는 상황 (0) | 2023.10.02 |