Linux (20) 썸네일형 리스트형 [Linux] Node.Js 프로그램 실행시 인자 받는법 Node.Js 프로그램을 실행시킬때 인자를 입력하고 사용하는 방법. processs.argv[] process 객체의 argv에는 현제 실행하고 있는 프로세스가 실행했을때 입력받은 값들이 저장되어있다. $node program.js testArgs1 testArgs2 12341234 위의 명령어로 program.js 를 실행시키면 process.argv[0] = 노드실행파일_위치\node.exe process.argv[1] = program.js_위치\program.js process.argv[2] = testArgs1 process.argv[3] = testArgs2 process.argv[4] = 12341234 위와 같이 process.argv에 순서대로 저장된다. 이때 process.argv[0].. [Linux Server] Node.js로 TCP 에코 서버 구현하기 (+ 방화벽 설정, 포트 열기) 원격 서버는 AWS lightsail을 이용해서 구현하였습니다. OS는 cent os 입니다. 목차 1. Node.js 설치 1-1. epel 설치 1-2. node.js 설치 2. 포트 열기 2-1. 리눅스 포트 열기 2-2. AWS 포트 허용 3. 서버 코드 작성 4. 클라이언트 코드 작성 5. 서버 설정 1. Node.js 설치 1-1. epel 설치 1-1-1. epel 설치 확인 yum repolist 또는 yum repolist | grep epel yum 명령어를 통해 epel 저장소가 있는지 확인한다. (빨간줄로 표시된 부분이 있어야 설치된 상태) 없을 경우 epel 설치를 진행한다. 1-1-2. epel 설치 sudo yum -y install epel-release epel을 설치한다... 리눅스 c++ 메모 끄적끄쩍 주제 없이 모아놓고 ctrl + F 로 찾아보려고 만듬 소켓 종료함수 소켓 닫기 소켓 닫을때 close와 shutdown차이 close -> 소켓 종료 함수. 성공하면 0, 실패하면 -1 반환. shutdown -> 소켓 종료 함수. how_to 옵션에 따라 read buffer와 write buffer중 어떤 것을 차단할지 선택. 성공 0,실패 -1 int close(int socket_fd); int shutdown(int socket_fd, int how_to); how to 상수 SHUT_RD : recv buffer 만 차단 SHUT_WR : send buffer 만 차단 SHUT_RDWR : 둘다 차단. TCP 소켓 옵션 TCP socket 옵션 TCP 소켓 SO_LINGER 옵션 -> 소켓 .. [Linux] rm, rmdir 명령어 1. rm 파일이나 디렉토리를 삭제한다. rm [옵션] 경로 ex) rm -rf * // 현재 디렉토리의 모든 것을 강제로 삭제 옵션 -r : 해당 폴더와 해당 폴더 안에있는 모든 파일, 디렉토리까지 제귀적으로 삭제. rm 명령어로 디렉토리를 제거하기 위해서는 '-r'이나 '-d' 옵션이 있어야한다. -d : 빈 디렉토리를 삭제하는 옵션 -i : 각 파일 및 디렉토리를 삭제할 때 삭제여부를 묻도록 하는 옵션 -f : 모든 오류를 무시하고 강제로 삭제하는 옵션 -v : 모든 처리과정 출력 2. rmdir 디렉토리를 삭제한다. 비어있는 디렉토리가 아니면 실패한다. rmdir [옵션] 경로 옵션 --ignore-fail-on-non-empty : 디렉토리가 비어있지 않을때 오류문을 던지지 않는다. (디렉토리는.. [Linux] Make 와 Makefile, Makefile 만들기 리눅스 쉘 환경에서 코딩을 하다보면 make 명령어를 이용하여 컴파일을 하는 경우가 많으실 겁니다. makefile만 만들어 놓으면 귀찮은 컴파일 과정을 명령어 하나로 실행할 수 있기 때문인데, 어떻게 이게 가능할 까요? make와 makefile에 대해서 알아보겠습니다. 1. Make란 무엇인가? make 명령어는 Unix/Linux 시스템에 포함되어 있는 명령어. (Windows에도 make라는 똑같은 기능의 명령어가 있습니다.) makefile이라는 파일을 참조하여 컴파일러에 명령을 전달하며, makefile에 기술된 Shell명령어들이 순차적으로 실행될 수 있게 한다. 파일관리 유틸리티 소프트웨어이다. make명령어는 makefile(기술파일)에 프로그래머 또는 사용자가 기술해 놓은 명령어를 컴파.. 6. 정보를 주고 받기 - send(), recv() 1. header #include #include 2. function int send(int socket, const void *msg, size_t len, int flags); int recv(int socket, void *buf, size_t len, int flags); 1) int socket: 통신의 주체가 되는 소켓 디스크립터 send - 정보를 받을 소켓 디스크립터 주소 recv - 정보를 보내는 소켓 디스크립터 주소 2) const void *msg : 상대에게 보낼 자료의 포인터 3) void *buf : 받은 메세지를 저장할 버퍼 포인터 4) size_t len : 전송되는 메세지의 크기 (byte 단위) 5) int flags : 플레그(옵션) flags 설명 MSG_DONTWA.. 5. 클라이언트의 접속 요청을 허락하고 통신용 소켓 생성 - accept() 1. header #include 2. function int accept(int socket, struct sockaddr *addr, socklen_t *addrlen); 1) int socket : listen()으로 클라이언트의 접속요청을 받고있는 소켓 2) struct sockaddr *addr : 클라이언트 주소정보를 가지고 있는 sockaddr 구조체 포인터 3) socketlen_t *addrlen : addr 포인터가 가르키는 구조체의 크기 4) return : 성공 실패 클라이언트와의 통신 소켓 디스크립터 -1 3. 사용 #include #include #include #include #include #define PORT 80 int main() { int sock = socket(A.. 4. 클라이언트에서 서버에 연결 요청하기 - connect() 1. header #include 2. function int connect(int socket, const struct sockaddr *server_address, socklen_t addrlen); 1) int socket : 서버와 연결할 소켓 2) struct sockaddr *server_address : 서버의 주소를 가지고 있는 sockaddr 구조체의 포인터 3) socklen_t addrlen : server_address 포인터가 가르키는 구조체의 크기 4) return : 성공 실패 0 -1 3. 사용 #include #include #include #include #include int main() { const int port = 80; int sock = socket(AF_IN.. 이전 1 2 3 다음