반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 가천대
- HTTP 완벽 가이드
- 크롤링
- 문자열
- socket
- Node.js
- 타입 챌린지
- 백준
- type challenge
- ip
- 쉬운 문제
- TCP
- 프로그래머스 레벨 2
- 타입스크립트
- typescript
- dfs
- 그래프
- dp
- 자바스크립트
- 프로그래머스
- 소켓
- 레벨 1
- 수학
- Algorithm
- HTTP
- BFS
- Crawling
- Nestjs
- 알고리즘
- javascript
Archives
- Today
- Total
kakasoo
[TCP/IP] 인터넷 주소의 초기화와 할당 (window) 본문
반응형
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
32
33
34
35
36
37
38
39
40
41
42
|
#define _WINSOCK_DEPRECATED_NO_WARNINGS // inet_addr 함수 사용을 위함, ntoa에도 필요하다.
#define _CRT_SECURE_NO_WARNINGS // strcpy
#include <stdio.h>
#include <string.h>
#include <winsock2.h>
void ErrorHandling(char* message) {
fputs(message, stderr);
fputc('\n', stderr);
exit(1);
}
int main(int argc, char* argv[]) {
WSADATA wsaData;
if(WSAStartup(MAKEWORD(2,2), &wsaData) != 0)
ErrorHandling("WSAStartup() Error!");
/* inet_addr 함수 호출의 예 */
{
char* addr = "127.212.124.78";
unsigned long conv_addr = inet_addr(addr);
if (conv_addr == INADDR_NONE)
printf("Error ococured!\n");
else
printf("Network ordered integer addr : %#1x \n", conv_addr);
}
/* inet_ntoa 함수 호출의 예 */
{
struct sockaddr_in addr;
char* strPtr;
char strArr[20];
addr.sin_addr.s_addr = htonl(0x1020304);
strPtr = inet_ntoa(addr.sin_addr);
strcpy(strArr, strPtr);
printf("Dotted-Decimal notation3 %s \n", strArr);
}
WSACleanup();
return 0;
}
|
cs |
블로그 주인장이 리눅스를 아직 다룰 줄 모르는 관계로 윈도우 code 만을 게시하고 있다.
코드에 대해서 주석 대신, 블로그를 통해서 설명한다.
inet_addr 함수는 문자열로 된 주소를 32bit의 주소 값으로 변환시키는 함수이며, 유효하지 않는 주소를 제외한다.
예컨대, 주소의 숫자 중 256에 해당하는 값 (255보다 큰 값)이 있으면, 자동적으로 오류를 감지해준다.
변환과 오류 감지를 동시에 해주는 셈이다.
inet_aton은 위의 함수와 동일한데, window에는 없어서 생략하였고,
간략한 설명만 적자면, 이 함수는 변환 후 다른 변수에 대입해줄 필요 없이 원래의 자료형에 대입해준다는 이점이 있다.
inet_ntoa 함수는 inet_aton 함수와 반대로 작동하는 함수이다.
주소를 문자열로 변환해서, 사람이 읽을 수 있는 값으로 바꿔 준다.
다음에는 TCP 기반 서버와 클라이언트다!
드디어 내가 배우고자 했던 부분이 나온다.
반응형
'프로그래밍 > 네트워크' 카테고리의 다른 글
[TCP/IP] TCP/IP 프로토콜 스택 (2) (0) | 2020.07.15 |
---|---|
[TCP/IP] TCP/IP 프로토콜 스택 (1) (0) | 2020.07.15 |
[TCP/IP] htons, htonl의 윈도우 기반 사용 예 (0) | 2020.07.15 |
[TCP/IP] 주소정보의 표현 (자료형, 매크로 상수들이 있는 이유) (0) | 2020.07.15 |
[TCP/IP] 소켓에 할당되는 IP 주소와 PORT 번호? (0) | 2020.07.15 |