Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 개발
- 코테
- java정리
- 프로그래밍
- Reflex
- 프로그램
- 코스닥
- 이웃한 칸
- 코딩테스트
- 코딩독학
- 자바
- 주가예측
- 개인프로젝트
- 모의 주식
- Project
- 자바독학
- 개발자
- 빅데이터
- SNS
- frontend
- Python
- 코딩
- 백준
- C++
- 사물인터넷
- 프로그래머스
- java
- 자바정리
- 풀스택프레임워크
- backend
Archives
- Today
- Total
Creative Code
Chapter3(서버에 접속한 IP주소, 포트번호 출력) 본문
※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); // 프로그램 종료
}
'TCP IP 소켓프로그래밍' 카테고리의 다른 글
Chapter8(호스트 정보 조회) (0) | 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 |