C/C++ 2

TCP/IP 패킷 수신(패킷 분리 및 합침)

안녕하세요 업글입니다! 기본적인 TCP/IP 통신에 대한 예제들은 구글링을 통해서 쉽게 찾을 수 있습니다. 그러나 기본적인 함수 사용에 대한 내용이므로 바로 프로젝트 또는 현업에 적용하는 것은 쉽지 않습니다. 해당 포스팅에서는 TCP/IP 통신에서 패킷 수신 시 고려사항과 해당 사항을 고려한 로직 및 C/C++ 기반의 코드에 대해서 설명드리겠습니다. TCP/IP 통신은 MSS 사이즈, 윈도우 사이즈, 네이글 알고리즘 등과 같은 특징들에 의해서 상대측 어플리케이션 레벨에서 송신한 패킷이 분리되거나 합쳐져서 송신되어 수신 시에 분리되거나 합쳐져서 수신되는 경우가 있습니다. 패킷 분리되는 경우 위의 그림은 패킷 분리에 대한 예시로 상대측 어플리케이션 레벨에서 한번에 abcdef를 송신하였는데 수신 함수를 통해..

프로그래밍 2021.12.15

[c/c++] 프로세스 우선순위 변경

안녕하세요 업글입니다! 윈도우 운영체제는 리얼타임 OS가 아니기때문에 윈도우 환경에서 실행되는 프로세스의 경우 실시간으로 동작되는 것은 어렵습니다. 실시간이 중요한 경우 OS를 윈도우를 사용하지 않고 상대적으로 백그라운드에서 동작되는 프로세스가 적은 리눅스를 사용하거나 VxWorks와 같은 RTOS 종류의 운영체제를 사용하게 됩니다. 여기서는 윈도우 환경에서 프로세스를 최대한 실시간으로 운영하기 위한 방법에서 단순한 방법 중 하나인 프로세스 우선순위를 변경하는 방법에 대해서 설명드리겠습니다. 반대의 경우로 우선순위를 낮게 변경하는 경우에도 적용할 수 있습니다. Visual Studio를 통해서 생성된 프로그램을 실행하였을 때 기본적인 우선순위는 보통입니다. 작업 관리자의 세부 정보에서 해당하는 프로그램의..

프로그래밍 2021.12.10