1. 프로그래밍 환경 


- ATOM Editor




- c/c++을 사용하기 위해선 gpp-compiler 패키지 필요




2. hello_server.c 


#include <stdio.h>  //표준 입출력

#include <netinet/in.h>

#include <sys/socket.h>

#include <string.h> // write, close를 위해

#include <ctype.h> // memset, strlen 위해


#define PORT 9000 // 포트 9000으로 지정


char buffer[BUFSIZ]="hello, world";


int main()

{

  int c_socket, s_socket;

  struct sockaddr_in s_addr, c_addr;

  int len;

  int n;



s_socket= socket(PF_INET, SOCK_STREAM,0);  //tcp용 소켓 생성


memset(&s_addr, 0, sizeof(s_addr));

s_addr.sin_addr.s_addr=htonl(INADDR_ANY);

s_addr.sin_family=AF_INET;

s_addr.sin_port=htons(PORT);          /// port와 ip주소 설정(ip는 모두,, 받아들인다는 뜻에서 INADER_ANY사용)


if(bind(s_socket, (struct sockaddr *) &s_addr, sizeof(s_addr))== -1){

  printf("Can not Bind \n");

  return -1;                     // 소켓을 포트와 연결

}


if(listen(s_socket ,5)==-1){

  printf("listen Fail \n");

  return -1;

}                              // 커널에 개통 요청


while(1){


  len=sizeof(c_addr);

  c_socket=accept(s_socket, (struct sockaddr *) &c_addr, &len);  // 클라이언트로부터 연결 요청을 수신(연결 요청을 s_socket<듣기소켓>이 받으면, 자료 송수신시 사용하는 c_socket<연결소켓>으로 반환)


  n=strlen(buffer);

  write(c_socket,buffer,n); // 클라이언트에게 서비스 제공


  close(c_socket);  // 클라이언트와 연결 종료

}


close(s_socket); // 서버 종료 


}



'웹소켓' 카테고리의 다른 글

hello_client.c  (0) 2018.11.01
소켓 프로그래밍 맛보기  (0) 2018.10.31

+ Recent posts