728x90
반응형

소켓 프로그래밍 3

[webproxy-lab] 웹 소켓 통신 / Tiny Web Server 구현 (C언어)

Tiny Web Server는 말 그대로 작은 웹 서버이다.클라이언트의 요청을 받아 두개의 수를 더하는 adder 프로그램을 실행할 수 있으며,클라이언트가 정적 컨텐츠를 요청하는지, 동적 컨텐츠를 요청하는지 판단하여 Response를 보낼 수 있다. main 함수int main(int argc, char **argv) {  int listenfd, connfd;  char hostname[MAXLINE], port[MAXLINE];  socklen_t clientlen;  struct sockaddr_storage clientaddr;    // 포트번호 인자가 없으면 사용법 출력  /* Check command line args */  if (argc != 2) {    fprintf(stderr, "..

[webproxy-lab] 웹 소켓 통신 / Echo Server,Client 구현 (C언어)

클라이언트와 서버는 소켓 기반으로 연결된다.클라이언트의 요청을 서버가 받아서 그대로 되돌려주는 형태의 Echo Server와 Client를 구현해볼 것이다.주석이 상세히 달려 있으니 추가적인 코멘트는 필요 없을 거라고 생각한다.  Echo Client#include "csapp.h"// 인자 3개를 받는다.int main(int argc, char **argv) {    // 클라 소켓의 fd를 저장할 변수    int clientfd;    // 서버호스트명, 서버포트번호, 버퍼 저장할 변수    char *host, *port, buf[MAXLINE];    // rio 구조체 선언    rio_t rio;    // 이 프로그램 실행 시, 인자가 3개가 아니면 사용법을 출력한다    // 인자 1 ..

[webproxy-lab] 네트워크 프로그래밍 / 소켓 통신의 개념

파일 디스크립터(File Descriptor, FD)- 유닉스/리눅스 시스템에서 프로세스가 파일을 다룰 때 사용하는 개념, 프로세스에서 특정 파일에 접근할 때 사용하는 추상적인 값- 이 값은 일반적으로 “0이 아닌 양수 정수값”을 갖는다.- 프로세스 실행 중 파일을 Open하면, 커널은 해당 프로세스의 파일 디스크립터 숫자 중 사용하지 않는 가장 작은 값을 할당해 준다.- 이후 프로세스가 System Call을 이용해서 Open되어있는 파일에 접근할 때, FD값을 이용해서 파일을 지칭한다.- 기본적으로 할당되는 FD는 표준입력(Standard Input), 표준출력(Standard Output), 표준에러(Standard Error) 3가지이며 각각 0, 1, 2가 할당된다.   네트워크- 호스트에게 있..

728x90
반응형