#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번째줄 기다리던 놈이 전화와서 나한테 줌 나 전화받아서 데이터 들음
그니깐 전화기 벨 안울리는거 누가 들고 있는거랑 비슷함 ㅇㅇ
소리들리면 보스한테 전화기 주는듯
'[ 충남인력개발원 ] (2019) > ┗TCP&IP' 카테고리의 다른 글
인터넷 주소 IP PORT 대해서 (0) | 2019.11.24 |
---|---|
프로토콜의 이해와 소켓의 생성 (0) | 2019.11.24 |
리눅스 함수 전화 거는넘~~! (0) | 2019.11.23 |
윤성우 열혈 TCP /IP 소켓 프로그래밍 (0) | 2019.11.23 |
우문트 설치 하기 (0) | 2019.11.23 |