#include <sys/socket.h>

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

성공시 파일 드스크립터, 실패시 -1 반환~~

 

소켓 만들엇움~

 

=============================

 

#include <sys/socket.h>

int bind(int sockfd, struct sockaadr *myaddr, socklen_t addrlen);

성공시 0 실패시 -1 반환

 

전화 받기 됫움  전화오길 기다리는중

 

====================

 

#include <sys/socket.h>

int listen(int sockfd, int backlog);

성공시 0 실패시 -1 반환

 

전화왓움 받음 을 만들엇움

 

 

=====================

 

#include <sys/socket.h>

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

성공시 파일 드스크립터 , 실패시 -1 반환

 

======================

 

 

그럼 다 이어 볼까요??

 

Hello world~~~~~!!!

 

hello_server.c 만들기 

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <sys/socket.h>
void error_ handling(char *message);

int main(int argc, char *argv[])
{
    int serv_sock;
    int clnt_sock;
    
    struct sockaddr_in serv_addr;
    struct sockaddr_in clnt_addr;
    socklen_t clnt_addr_size;
    
    char message[]="Hello World!";
    
    if(agrc!=2)
    {
    	printf("Usage : %S <port>\n", argv[0]);
        exit(1);
    }
    
    serv_sock=socket(PF_Inet, Sock_STREAM, 0);
    if(serv_sock == -1)
    	error_handling("socket() error");
    
    memset(&serv_addr, 0, sizeof(serv_addr));
    serv_addr.sin_family=AF_INET;
    serv_addr.sin_addr.s_addr=htonl(INADDR_ANY);
    serv_addr.sin_port=htons(atoi(argv[1]));
    
    if(bind(serv_sock, (struct sockaddr*) &serv_addr, sizeof(serv_addr)) == -1)
    	error_handling("bind() error");
    
    if(listen(serv_sock, 5) == -1)
    	error_handling("listen() error");
    
    clnt_addr_size=sizeof(clnt_addr);
    clnt_sock=accept(serv_sock, (struct sockaddr*)&clnt_addr, &clnt_addr_size);
    if(clnt_sock==-1)
    	eroor_handling("accept error");
    
    write(clnt_sock, message, sizeof(message));
    close(clnt_sock);
    close(serv_sock);
    return 0;
}

void error_handling(char *message)
{
    fputs(message, stderr);
    fputc('\n', stderr);
    exit(1);
}

오!! 티스토리 이런것도 되네 첨암!!

 

26번째줄 serv_sock이름으로 소켓 만듬

35번째줄 bind 함수로 (if 안에서 만들엇움) IP주소와 PORT번호 넣어주기

38번째줄 listen 함수로 (이것도 안에서 만들엇움) 연결요청 기다리는 놈 만들기(24시간 기다림)

42번째줄 연결요청 있을때까지 기다리는 놈 이제부터 일시킴 요청잇으면 나한테 보고함

46번째줄 기다리던 놈이 전화와서 나한테 줌 나 전화받아서 데이터 들음

 

그니깐 전화기 벨 안울리는거 누가 들고 있는거랑 비슷함 ㅇㅇ

소리들리면 보스한테 전화기 주는듯

블로그 이미지

Or71nH

,