728x90
반응형

웹 서버 3

[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가 할당된다.   네트워크- 호스트에게 있..

스프링 입문 - 빌드하고 실행하기

만들어진 웹서버를 배포할 수 있는 간단한 방법이 있다. 빌드하고, 빌드된 파일을 실행만 하면 어디에서든 웹서버를 가동시킬 수 있는 것이다. 먼저 스프링이 설치된(프로젝트가 설치된) 디렉터리로 온다. 그러면 이런 파일과 디렉터리들이 있다. 이 화면은 인텔리제이에서 실행한 터미널이고, git bash가 연동되어 있다. 강사님도 git bash를 사용하시고, 나도 리눅스 환경이 편해서 git bash를 인텔리제이 터미널에 연동했다. 연동 방법은 간단하니 구글링하면 쉽게 따라할 수 있다. 참고로 git bash는 리눅스 명령어를 따른다. ./gradlew build 해당 스프링이 설치된 위치에서, ./gradlew build 명령어를 입력한다. 그러면 이렇게 빌드가 시작된다. 만약 빌드가 잘 되지 않으면, ./..

Development/Spring 2023.08.01
728x90
반응형