# 소켓 생성
#include <sys/types.h>
#include <sys/socket.h>

int socket(int domain, int type, int protocol);
@ return :  파일 디스크립터, 실패시 -1

> 프로토콜 체계
PF_INET, PF_INET6, PF_LOCAL, PF_PACKET, PF_IPX

> 소켓의 타입
SOCK_STREAM, SOCK_DGRAM

# 주소 할당
#include <sys/socket.h>

int bind(int sockfd, struct sockaddr *myaddr, int addrlen);
@ return : 성공시 0, 실패시 -1

> IPv4의 주소체계를 나타내는 구조체
struct sockaddr_in {
        sa_family_t       sin_family;     /* 주소 체계(address family) */
        uint16_t             sin_port;        /* 16비트 TCP/UDP port */
        struct in_addr  sin_addr;        /* 32비트 IPv4 주소 */
        char                   sin_zero[8];    /* 사용되지 않음 */
}

struct in_addr {

        uint 32_t;
}

# 연결 요청
#include <sys/socket.h>

int listen(int sockfd, int backlog);
@ return : 성공시 0, 실패시 -1

# 연결 요청 수락
#include <sys/socket.h>

int accept(int sockfd, struct sockaddr *addr, int *addrlen);


* 파일 관리

# 파일 열기
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>

int open(const char *path, int flag);
@ return : 성공시 파일 디스크립터, 실패시 -1

# 파일 닫기
#include <unistd.h>

int close(int fildes);
@ return : 성공시 0, 실패시 -1

# 데이터 쓰기
#include <unistd.h>

ssize_t write(int fildes, const void * buf, size_t nbytes)
@ return : 성공시 전달한 바이트수, 실패시 -1

# 데이터 읽기
#include <unistd.h.

ssize_t read(int fildes, void *buf, size_t nbytes)
@ return : 성공시 수신한 바이트수(단, EOF 만나면 0), 실패시 -1



-