Notice
Recent Posts
Recent Comments
250x250
Creative Code
Chapter3(서버에 접속한 IP주소, 포트번호 출력) 본문
728x90
※endian_conv.c파일
#include <stdio.h>
#include <arpa/inet.h>
int main(int argc, char *argv[])
{
unsigned short host_port=0x1234;
unsigned short net_port;
unsigned long host_addr=0x12345678;
unsigned long net_addr;
net_port=htons(host_port);
net_addr=htonl(host_addr);
printf("Host ordered port: %#x \n", host_port); // 빅엔디안
printf("Network ordered port: %#x \n", net_port); // 리틀엔디안
printf("Host ordered address: %#lx \n", host_addr); // 빅엔디안
printf("Network ordered address: %#lx \n", net_addr); // 리틀엔디안
return 0;
}
※inet_addr.c파일
#include <stdio.h>
#include <arpa/inet.h>
int main(int argc, char *argv[])
{
char *addr1 = "127.212.124.78"; // 첫 번째 IP 주소를 문자열로 설정
char *addr2 = "127.212.124.256"; // 두 번째 IP 주소를 문자열로 설정
unsigned long conv_addr = inet_addr(addr1); // 첫 번째 주소를 네트워크 바이트 순서로 변환하여 변수에 저장
if (conv_addr == INADDR_NONE)
printf("Error occured! \n"); // 변환 실패 시 오류 메시지 출력
else
printf("Network ordered integer addr: %#lx \n", conv_addr); // 변환된 네트워크 바이트 순서의 정수값 출력
conv_addr = inet_addr(addr2); // 두 번째 주소를 네트워크 바이트 순서로 변환하여 변수에 저장
if (conv_addr == INADDR_NONE)
printf("Error occureded \n"); // 변환 실패 시 오류 메시지 출력
else
printf("Network ordered integer addr: %#lx \n\n", conv_addr); // 변환된 네트워크 바이트 순서의 정수값 출력
return 0;
}
※inet_aton.c파일
#include <stdio.h>
#include <stdlib.h>
#include <arpa/inet.h>
// 오류 처리 함수 정의
void error_handling(char *message);
int main(int argc, char *argv[])
{
char *addr = "127.232.124.79"; // 변환할 IP 주소를 문자열로 설정
struct sockaddr_in addr_inet; // IP 주소를 저장할 구조체
// inet_aton 함수를 사용하여 문자열 형태의 IP 주소를 네트워크 바이트 순서로 변환하여 addr_inet 구조체에 저장
if (!inet_aton(addr, &addr_inet.sin_addr))
error_handling("Conversion error"); // 변환 실패 시 오류 메시지 출력 및 오류 처리 함수 호출
else
printf("Network ordered integer addr: %#x \n", addr_inet.sin_addr.s_addr); // 변환된 네트워크 바이트 순서의 정수값 출력
return 0;
}
// 오류 처리 함수 구현
void error_handling(char *message)
{
fputs(message, stderr); // 오류 메시지를 표준 오류 스트림에 출력
fputc('\n', stderr); // 개행 문자 출력
exit(1); // 프로그램 종료
}
728x90
'TCP IP 소켓프로그래밍' 카테고리의 다른 글
Chapter8(호스트 정보 조회) (1) | 2023.10.11 |
---|---|
Chapter9(버퍼 입력받기) (0) | 2023.10.11 |
Chapter5(echo_client) (0) | 2023.10.11 |
Chapter4(서버에 순차접속) (0) | 2023.10.11 |
Chapter1(서버,클라이언트 통신) (0) | 2023.10.10 |