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 |