- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[TCP/IP] TCP/IP 프로토콜 스택 ( 소켓 ) 본문
TCP/IP 프로토콜 스택
2.LINK 계층 - 네트워크 표준과 관련된 프로토콜을 정의하는 영역
인터넷 연결 구조
3 IP 계층 - 데이터를 보내기 위해 필요로 하는 방법
IP 라이우팅
3_1 TCP와IP의 관계
4.TCP/UDP 계층 - 데이터를 전송하는 방법을 정의
-TCP : 신뢰성 있는 데이터 전송 프로토콜
5.Application 계층
1.-소켓을 이용한 프로그램의 구현을 의미한다.
6.TCP기반 서버의 구현
-서버에서의 기본적인 함수 호출 순서
socket() --> bind() --> listen() --> accept() --> read()&write() --> close()
소켓생성 -> 주소할당 -> 연결요청대기 -> 연결 허용 -> 데이터 송신 -> 연결 종료
-연결 요청 대기 상태 로의 진입
#include <sys/types.h>
int listen(int s, int backlog);
==>s' 연결 요청 대기 상태' 클라이언트의 연결 요청을 받아들이는 역할을 하게 될 소켓의 파일 디스크립터를 인자로 전달하게 된다.
==>backlog '연결 요청 대기 큐(queue)'의 크기를 나타낸다.
==>성공하면 0을 실패햐면 -1을 리턴
==>listen 함수는 전달되는 인자의 소켓을 서버 소켓이 되게 한다.
==>listen 함수는 연결 요청 대기 큐를 생성한다.
==>서버 소켓은 일종의 문지기 이다.
7.연결 요청 수락하기
#include <sys/types.h>
#include <sys/socket.h>
int accept(int s, struct sockaddr *addr, int *addrlen);
==>s는 서버 소켓의 파이 디스크립터를 인자로 전달
==>addr는 연결 요청을 수락할 클라이언트의 주소 정보를 저장할 변수의 포인터. 함수의 호출이 성공하면 addr이 가리키는 변수에는 클라이언트의 주소 정보로 채워지게 된다.
==>addrlen는 함수 호출시 인자로 addr 포인터가 가리키는 구조체의 크기를 저장하고 있는 변수의 포인터를 넘겨준다. 함수 호출 성공시 리턴 받은 클라이언트의 주소 정보 길이가 바이트 단위로 변수 안에 채워 진다.
연결요청 수락 상태
[출처] TCP/IP 프로토콜 스택|작성자 야쿨트
'★─Programing > ☆─TCP IP' 카테고리의 다른 글
[TCP/IP] Iterative 서버의 구현 (0) | 2009.01.30 |
---|---|
[TCP/IP] Socket 중에서 INADDR_ANY .. (0) | 2009.01.30 |
[TCP/IP] IP 주소체계 ( IPv4, IPv6 ) (0) | 2009.01.29 |
[TCP/IP] 리눅스 소켓프로그래밍 기본적인 함수 (0) | 2009.01.19 |
[TCP/IP] Echo (에코) 프로그램 Client (리눅스) (0) | 2008.12.13 |