소켓의 개념

소켓의 개념은 세가지 관점으로 생각해보자.

 데이터 타입

 통신 종단점(communication end-point)

 네트워크 프로그래밍 인터페이스


1. 데이터 타입

 파일 디스크립터(file descriptor)혹은 핸들(handle)과 유사한 개념으로, 운영체제가 통신을 위해 관리하는
 데이터를 간접적으로 참조할 수 있도록 만든 것이다. 

 ex)파일 입출력 코드
     int fd=open("myfile",...);    //파일 생성
     ....
     read(fd, ..);    //읽기
     write(fd, ...);     //쓰기

 ex)소켓 입출력 코드
     SOCKET sock=socket(...);    //소켓 생성
     ...
     recv(sock,...);    //받기
     send(sock, ...);    //보내기

  여기서 파일 입출력 코드와 소켓 입출력 코드가 비슷한 형태를 지님을 알수 있다.


 2. 통신 종단점   
  • 사용할 프로토콜(tcp/ip, udp/ip,...)
  • 송신측 ip 주소
  • 송신측 포트 번호
  • 수신측 ip 주소
  • 수신측 포트 번호

     소켓은 이러한 정보의 집합체로써 애플리케이션 관점에서 본다면 통신 종단점이라 할수 있다.


  3. 네트워크 프로그래밍 인터페이스

    

by 꺼벙이 | 2007/12/04 17:06 | ☆★네트워킹프로그래밍★☆ | 트랙백

1. 기본개념(1.1~1.2)

1.1 개요: 시스템 생명 주기

 시스템 생명 주기(system life cycle) 개발단계
 1)요구사항
 2)분석
 3)설계
 4)코딩
 5)검증과정

1.2 알고리즘 명세

 ■ 알고리즘 : 특정한 일을 수행하는 명령어들의 유한집합.
         1) 입력: 외부에서 제공되는 데이터가 0개 이상 있다.
         2) 출력: 적어도 한 가지의 결과를 생성한다.
         3) 명확성: 각 명령들은 명확하고 모호하지 않아야 한다.
         4) 유한성: 알고리즘의 명령대로 수행하면 어떤 경우에도 한정된 수의 단계 뒤에는
                        반드시 종료한다.
         5) 유효성: 모든 명령들은 종이와 연필만으로 수행될 수 있게 기본적이어야 한다.

     예제1.1>  [선택정렬]: n>=1개의 서로 다른 정수를 정렬하는 프로그램을 작성한다.
         #include <stdio.h>
         #include <math.h>
         #define MAX_SIZE 101
         #define SWAP(x,y,t) ((t)=(x),(x)=(y),(y)=(t))
       
         void sort(int[], int);
//선택정렬
         void main(void){
             int i, n;
             int list[MAX_SIZE];
             printf("Enter the number of numbers to generate: ");
             scanf("%d",&n);
             if(n<1 || n>MAX_SIZE){
                 fprintf(stderr, "Improper value of n\n");
                 exit(1);
             }
            
             for(i=0;i<n;i++){
//임의의 수를 생성
              
   list[i]=rand() % 1000;
                 printf("%d",list[i]);
             }

             sort(list, n);
             printf("\n Sorted array: \n");
             for(i=0;i<n;i++)    
//저장된 숫자를 프린트
                 printf("%d",list[i]);
             printf("\n");
        }
        void sort(int list[], int n){
            int i, j, min, temp;
            for(i=0;i<n-1;i++){
                min=i;
                for(j=i+1;j<n;j++)
                    if(list[j]<list[min])
                        min=j;
                SWAP(list[i],list[min],temp);
            }
        }
        프로그램 1.3 선택 정렬


이어지는 내용

by 꺼벙이 | 2007/11/28 23:56 | ☆★자료구조★☆ | 트랙백

◀ 이전 페이지다음 페이지 ▶