================================ Outline ====================================

네트워크 연결

----------------------------------------------------------------------------

joinc.co.kr로 접속한 후,

 

인터넷 소켓(Internet socket)이란 네트워크로 연결되어 있는 컴퓨터의 통신의 접점에 위치한 통신 객체다. 네트워크 통신을 위한 프로그램은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다.

 

TCP/IP (Transmission Control Protocol/Internet Protocol)

 

socket 함수를 사용하기 위한 헤더 파일

<sys/types.h> & <sys/socket.h>

 

int socket(int domain, int type, int protocol)

 

joinc 예제에 있는

 

(server_sockfd = socket(AF_INET, SOCK_STREAM, 0)

 

파일 내 찾고 싶은 문자열이 있을 경우 'grep'키워드를 사용한다.

 

socket.hAF_INET이 정의되어 있는 것을 확인할 수 있다.

 

#define AF_INET PF_INET

#define PF_INET 2 /* IP protocol family. */

 

// ‘TCP/IP 일러스트레이터네트워크 관련한 전문서적

 

첫 번째 인자인 int domain은 인터넷 프로토콜을 사용 한다는 뜻이다.

 

// 메모리에 있는 프로그램이 실행되면 프로세스이다.

 

컴퓨터 내부에서 데이터를 공유하는 것을 IPC(internal process communication)라고 한다.

 

 

#define PF_ATMPVC 8 /* ATM PVCs. */ ATM - 중계기

 

두 번째 인자인 SOCK_STREAM1을 뜻한다.

 

SOCK_STREAM = 1, /* Sequenced, reliable, connection-based

- 연속적인, 신뢰할 수 있는, 연결 -> TCP/IP

 

 

SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams

- 연결이 필요 없는 방식 -> UDP/IP

 

UDP(User Datagram Protocol)

 

SOCK_RAW = 3, /* Raw protocol interface. */

데이터를 보내는 방식 결정

 

socket()의 반환형은 file descriptor이다.


 

Server/Client 모델

 

네트워크를 위한 작업 단계

1. 연결

2. 데이터 송/수신(read/write 함수)

3. 해체(close 함수)

 

 

errno.h파일에 대해서 알아보자.

#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <errno.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <fcntl.h>


int main(void)
{
    int iFd;
    printf("errono is %d\n", errno);    
    open("asfdasdfasfd", O_WRONLY);
    printf("errono is %d\n", errno);    
    return 0;
}



perror는 최근에 발생한 오류의 메세지를 출력해주는 함수이고 인자에는 사용자가 출력을 원하는 문자열(const char *)을 넣으면 된다.




반응형

'Busan IT > 공장내 Network' 카테고리의 다른 글

Server/Client socket 프로그램 만들기  (0) 2015.07.13
소켓 연결  (0) 2015.07.07
프로토콜 계층구조  (0) 2015.05.22
프로토콜 계층, pcap을 활용한 MAC address 표시  (0) 2015.05.21
pcap 사용법  (0) 2015.05.20
Posted by newind2000