일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 레벨 1
- 프로그래머스
- socket
- Nestjs
- 백준
- type challenge
- 그래프
- Algorithm
- 크롤링
- 타입스크립트
- 프로그래머스 레벨 2
- typescript
- 쉬운 문제
- Crawling
- 수학
- 가천대
- 알고리즘
- dfs
- 소켓
- 문자열
- BFS
- HTTP 완벽 가이드
- javascript
- Node.js
- ip
- 타입 챌린지
- TCP
- 자바스크립트
- HTTP
- dp
- Today
- Total
목록UDP (5)
kakasoo
클라이언트에서 입력한 것을, 서버가 받아서, 동일한 값을 되돌려 주는 에코 서버, 클라이언트이다. 자세한 내용은 모두 주석으로 처리하였으니, 읽고 기억을 되새겨보도록 하자. echo_server.c 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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 #include #include #include #include #define BUF_SIZE 1024 void ErrorHandling(char* mes..
iteractive 라는 말 때문에 복잡해보일 수 있는데, 사실 이건 "반복적인" 이라는 뜻에 불과하다. 반복적이라니, 도대체 무엇이 반복적이란 말인가? 사실 매우 간단하다. 지금 우리가 소켓 프로그래밍을 해본 걸 보면, 서버와 연결되는 즉시 값을 반환하고 양측의 소켓이 종료된다. 이런 식으로 만들면 안 된다, 소켓이 몇 개인지 알고, 또 정보 요구가 몇 번이나 올 줄 알고 1회성 서버를 만드는가. 그래서, 반복문으로, accept() 함수를 여러 번 반복시킨다, 또는 무한히 반복시킨다. 어디서부터 어디까지가 반복인지 설명하기 위해서 아래의 도식을 봐주길 바란다. 1. socket() 2. bind() 3. listen() 4. accept() 5. read() / write() // 데이터를 송수신한다..

오늘은 여기까지... LINK 계층부터 차례대로 올라가면서 이야기를 해보도록 하자. LINK 계층은, 물리적인 영역의 표준화에 대한 결과라고 한다, 이는 가장 기본이 되는 LAN,WAN,MAN 을 의미한다. 우리가 랜선 랜선 하는 그 랜, 즉 물리적인, 소프트웨어가 아닌, 하드웨어적인 연결을 의미한다. (꼭 하드웨어라고 할 수는 없겠다, 노트북은 무선으로도 망에 연결되어 사용되긴 하니까, 어쨌든 망을 의미한다.) 망이 연결되었다면, 이제 우리는 IP 계층에 접근할 수 있다. IP 계층에서 우리는 이제 데이터를 송신할 수 있게 된다, 그런데 우리가 앞서 서버와 클라이언트 소켓을 만들며 경험했던 것과 같이, 해야 할 작업들이 있다. IP에서 세부적인 프로토콜을 정해줄 필요가 있다, 이 과정에서 우리는 IPv..

인터넷 프로토콜(IPv4) 기반 소켓인 경우, 데이터 전송방법에 따라 TCP socket과 UDP socket으로 나뉘고, 특히 TCP 소켓의 경우 연결을 지향하기 때문에 stream 기반 소켓이라고 이야기한다. TCP는 앞전에 말했듯이 Transmission Control Protocol의 약자로, 전송 제어 프로토콜, 데이터 전송 과정의 컨트롤이라는 뜻을 가지고 있다. 좌측의 그림을 볼 때, TCP/IP 스택이 총 4개의 계층으로 나뉘어 있음을 볼 수 있다. 이는 데이터 송수신의 과정이 총 4개의 영역에서 이루어지는 것으로 받아들일 수 있는데, 이는 즉 '인터넷 기반의 효율적인 데이터 전송'이라는 커다란 하나의 문제를 하나의 덩치 큰 프로토콜 설계로 해결한 것이 아니라, 그 문제를 작게 나눠서 계층화..
IP는 Internert Protocol의 약자로, 인터넷 상에서 데이터를 송수신할 목적으로 컴퓨터에게 부여하는 값을 의미한다. 반면 PORT 번호는 컴퓨터에게 부여하는 값이 아닌, 프로그램 상에서 생성되는 소켓을 구분하기 위해 소켓에 부여하는 번호이다. IP부터 차례대로 말하자면, IP는 앞서 말한 듯 컴퓨터에 부여하는 값, 즉 주소 값을 의미한다. 인터넷에 컴퓨터를 연결해서 사용하려면 IP 주소를 부여 받아야 하는데, 여기서 IP 주소는 몇 가지 체계로 나뉜다. 그 중 잘 쓰이는 것이 바로 IPv4인데, 사실 IPv6보다 더 낮은 version을 의미한다. IPv4 (Internet Protocol version 4) IPv6 (Internet Protocol version 6) verison으로 치..