[TCP/IP] Iterative 에코서버, 에코 클라이언트
+ 에코 서버 : 클라이언트가 전송하는 문자열 데이터를 그대로 전송하는, 말 그대로 문자열 데이터를 에코시키는 서버 # 프로그램 기본 동작 방식 - 서버는 한 순간에 하나의 클라이언트와 연결되어 에코 서비스를 제공한다. - 서버는 총 다섯 개의 클라이언트에게 순차적으로 서비스를 제공하고 종료한다. - 클라이언트는 프로그램 사용자로부터 문자열 데이터를 입력 받아서 서버에 전송한다. - 서버는 전송 받은 문자열 데이터를 클라이언트에게 재전송한다. 즉, 에코 시킨다 - 서버와 클라이어튼간의 문자열 에코는 클라이언트가 Q를 입력할 때까지 계속한다. # echo_server.c #include #include #include #include #include #include #define BUF_SIZE 1024 ..
Backend/Network
[TCP/IP] TCP와 UDP
도서 오렌지미디어 윤성우님의 '윤성우의 열혈 TCP/IP 소켓프로그래밍'을 보면서 공부한 내용입니다. 부족한 내용이나 잘못된 내용은 댓글남겨주시면 감사하겠습니다! 출처 : http://www.orentec.co.kr/teachlist/TCP_IP_1/teach_sub1.phphttps://www.booksr.co.kr/html/book/book.asp?seq=697057 - 데이터 전송방법에 따라서 TCP소켓과 UDP 소켓으로 나뉨 - TCP 소켓의 경우 연결을 지향하기 때문에 '스트림 기반 소켓'이라고 함 - TCP : Transmission Control Protocol의 약자로 '데이터 전송과정의 컨트롤'이라는 뜻 # TCP/IP 프로토콜 스택 - 인터넷 기반의 데이터 송수신을 목적으로 설계된 스택..
Backend/Network
[TCP/IP] 리눅스 저수준 파일 입출력과 파일 디스크립터
# 표준 입출력과 표준 에러에 할당된 파일 디스크립터파일 디스크립터대상0표준입력 : Standard Input1표준출력 : Standard Output2표준에러 : Standard Error파일과 소켓은 생성의 과정을 거쳐야 파일 디스크립터가 할당됨.위의 세가지 입출력 대상은 별도의 생성과정없이도 프로그램이 실행되면 자동으로 할당되는 파일 디스크립터.# 파일열기- 데이터를 읽거나 쓰기 위해 파일을 열 때 사용하는 함수- 첫 번째 인자 : 대상이 되는 파일의 이름 및 경로 정보- 두 번째 인자 : 파일의 오픈 모드 정보(파일의 특성 정보)를 전달#include #include #include int open(const char *path, int flag);-> 성공시 파일 디스크립터, 실패시 -1반환- ..
Backend/Network
[TCP/IP] 리눅스 환경에서 C언어로 Hello World 서버/클라이언트 구현하기
네트워크 프로그래밍의 가장 기본인 TCP 소켓 통신을 리눅스 환경에서 구현해 보겠습니다. 서버가 연결을 기다리다가 클라이언트가 접속하면 "Hello World!"라는 메시지를 보내고 종료되는 가장 단순한 형태의 예제입니다. 1. 서버측 : hello_server.c서버는 소켓을 생성하고, IP와 포트를 할당(bind)한 뒤 클라이언트의 접속을 대기(listen)합니다. 접속이 허용(accept)되면 데이터를 전송합니다.#include #include #include #include #include #include void error_handling(char *message);int main(int argc, char *argv[]){ int serv_sock; int clnt_sock; struct so..
Backend/Network
[TCP_IP] VMware 설치방법
# VMware설치 https://www.vmware.com/products/workstation-pro/workstation-pro-evaluation.html vm킬때마다 업데이트할건지 몰라 License ZF3R0-FHED2-M80TY-8QYGC-NPKYF YF390-0HF8P-M81RQ-2DXQE-M2UT6 ZF71R-DMX85-08DQY-8YMNC-PPHV8 AZ3E8-DCD8J-0842Z-N6NZE-XPKYF FC11K-00DE0-0800Z-04Z5E-MC8T6 이 중 입력 Yes누르면 재부팅됨 # 우분투 https://ubuntu.com/download/desktop 최신버전인 20.04LTS설치 inha 1234
Backend/Network