네트워크 프로그래밍 : 서로 다른 두 컴퓨터가 정보를 주고받을 수 있도록 하는 것. \-> 기기 간 연결 + 데이터 송수신 기기 간의 연결은 인터넷이라는 거대한 연결망으로 되어있음. 데이터 송 수신을 어떻게 할지가 관건. 전화기를 통해 목소리를 주고받듯, 소켓
프로토콜 : 대화에 필요한 통신 규약두 사람이 대화하는데, 한 명은 전화로, 한 명은 편지로 대화하려 한다면 소통이 제대로 되지 못하듯, 통일된 방식으로 소통이 이루어져야한다. 통신 규약을 프로토콜 이라고 한다.앞서 보았듯, socket() 함수를 통해 소켓을 만들었었
TCP/IP 프로토콜 스택은 4계층으로 이루어진다.APPLICATION 계층 : 데이터 전송 경로 확인 과정이나, 데이터 수신의 응답 등 프로그램 성격에 따른 클라이언트와 서버 간의 데이터 송수신 규칙.TCP / UDP 계층 : 호스트 간 데이터 송수신 방식의 규약IP
TCP의 전송 특성에 맞게 클라이언트를 재구성해야한다.앞선 에코 클라이언트에서는 1 write - 1 read 를 통해 데이터를 수신하려고 한다. 하지만 이는 데이터 전송 방법 상 옳지 않은 방법이다. 에코 클라이언트는 자신의 말을 서버로 보내고 그 말이 그대로 자신
SEQ와 ACK를 통한 흐름 제어가 없다는 점이 TCP와의 큰 차이점이다.그래서 빠른 속도로 데이터를 전송할 수 있고 빠르게 교류가 일어나야하는 실시간 환경에서 도움이된다. UDP의 가장 중요한 역할: 호스트로 수신된 패킷을 PORT 정보를 참조하여 최종 목적지인
close()를 통해 소켓을 닫아버리면, 필수적으로 받아야할 데이터를 받지 못하거나, 보내지 못하는 경우가 생긴다.\-> Half-close하여 수신 또는 송신만 닫아서 문제 발생을 줄인다.두 소켓이 연결되면 데이터의 송 수신이 가능한 두 개의 스트림이 생성된다.스트림
윤성우 열혈 TCP/IP 소켓 프로그래밍 챕터 08
기본적으로 RFC1459, RFC2812와 같은 통신 규약을 기반으로 서버 - 클라이언트 간 통신 방식이 정해져있다.그에 해당하는 방식을 참고하고 inspircd와 같은 상용 서버를 기반으로 클라이언트의 메시지에 어떤 형식으로 답변하는지를 참고하였음.이를 기반으로 ft
소켓이 지니는 다양한 속성들을 파악하고, 특성을 필요에 맞게 변경하여 사용하는 것은 중요하다.!\[Pasted image 20240703175926.png]소켓 옵션은 프로토콜 레벨(계층)에 따라 구분된다.SOL_SOCKET : 소켓에 대한 가장 일반적인 옵션IPPR
멀티 프로세스 서버 : fork()를 통해 클라이언트에 대응 프로세스를 실행하여 여러 클라이언트들의 접속을 다루는 방식.\-> 많은 연산, 메모리 공간 사용, IPC 통신의 복잡함.단일 프로세스로 연결을 진행하는 방식이 IO 멀티플렉싱 서버하나의 통신채널을 통해서 둘
sockfd : 데이터 전송/수신 대상과의 연결을 의미하는 소켓의 파일 디스크립터 전달.buf : 전송/수신할 데이터를 저장하고 있는 버퍼의 주소 값 전달nbytes: 전송/수신할 바이트 수 전달flags: 데이터 전송/수신 시 적용할 다양한 옵션 정보 전달. (옵션
표준 입출력 함수는 이식성이 좋다.: 모든 운영체제가 지원하도록 ANSI C 에서 표준으로 정의했기 때문.표준 입출력 함수는 버퍼링을 통한 성능의 향상에 도움이 된다.: 표준 입출력 함수를 사용할 경우 추가적으로 입출력 버퍼를 제공받음.기본적으로 소켓을 생성하면 소켓
서버와 클라이언트의 연결을 다루려면, 소켓을 활용하여 둘 간의 연결을 이어주는 과정이 필요하다.앞선 게시글인 윤성우의 열혈 TCP/IP 책에서 보았듯, 서버가 클라이언트와 연결해주는 과정은 다음과 같다.\[Chapter 04 TCP 기반 서버 & 클라이언트 1]TCP