c# 공부 2024.05.27
시리얼 통신 & 체크섬 ppt
체크섬의 목적
체크섬은 데이터 전송 과정에서 발생할 수 있는 오류를 감지하는 간단하면서도 효과적인 방법. 데이터가 손상되면 체크섬이 일치하지 않게 되어, 데이터 수신자는 오류를 감지하고 조치를 취할 수 있다.
체크섬 계산 방법
내가 만든 코드에서는 각 문자의 ASCII 값을 체크섬 변수에 더함. 데이터의 끝을 나타내는 줄 바꿈 문자(CR 또는 LF)를 수신하면, 체크섬 계산을 마친다. 계산된 체크섬에서 상위 비트를 제거한 다음 (즉, 최하위 8비트만 유지), 이 값의 보수를 취함. 보수를 취하는 이유는 체크섬의 검증 과정을 간단하게 만들기 위해서. 이렇게 하면, 수신자는 수신 데이터와 체크섬을 모두 더했을 때 결과가 0이 되는지 확인함으로써 데이터의 무결성을 검증할 수 있다.
코드 구현의 학습 포인트
- Windows Forms 애플리케이션 구현: GUI 요소를 사용하여 사용자와 상호작용하는 애플리케이션을 만드는 방법을 학습.
- SerialPort 클래스 사용: 시리얼 포트를 통한 데이터 통신을 구현하기 위해 .NET의 SerialPort 클래스의 사용 방법.
- 이벤트 기반 프로그래밍: DataReceived 이벤트를 활용하여 비동기적으로 데이터를 받고 처리하는 방법.
- 멀티스레딩: 별도의 콘솔 입력을 처리하기 위한 배경 스레드를 구현하여, 애플리케이션의 반응성을 유지하는 방법.
- DLL 임포트와 플랫폼 간 작업: Windows API를 호출하여 콘솔 창을 활성화하는 방법을 통해, .NET에서 외부 라이브러리를 사용하는 방법을 학습.
tcp 통신
tcp(Transmission Control Protocol)
인터넷 상에서 데이터를 관리하는 방법을 정의하는 주요 프로토콜 중 하나. TCP는 네트워크 통신에서 데이터의 정확성을 보장하는 역할을 하며, 데이터가 목적지에 도착하기 전까지 패킷의 전송을 관리. TCP는 데이터를 세그먼트로 나누고, 각 세그먼트가 올바르게 전송되었는지 확인. 데이터가 올바르게 도착하지 않았다면 재전송을 요청. 이런 특성 때문에 TCP는 이메일, 웹 브라우징, 파일 전송 등 신뢰성이 중요한 어플리케이션에서 널리 사용됨.
SimpleTCP 라이브러리
SimpleTCP는 C#에서 TCP 기반의 서버와 클라이언트 애플리케이션을 쉽게 구현할 수 있도록 도와주는 라이브러리. 간단한 API를 제공하여, 개발자가 복잡한 네트워크 설정 없이도 TCP 서버와 클라이언트의 기능을 구현할 수 있게 해줌.
SimpleTCP를 사용한 학습
서버와 클라이언트 구축: SimpleTCP를 사용하여 TCP 서버와 클라이언트를 간단하게 구축이 가능. 서버는 데이터를 수신하고 클라이언트는 데이터를 전송하는 역할을 하며, 각각의 상태를 사용자 인터페이스에 표시할 수 있음.
연결 및 데이터 교환: 클라이언트에서 서버로의 연결 방법을 배웠으며, 문자열 데이터를 전송하고 응답을 받는 과정을 구현했음. 이 과정에서 TCP의 신뢰성 있는 데이터 전송 특성을 경험할 수 있었음.
이벤트 핸들링: 데이터 수신 시 이벤트를 처리하는 방법. SimpleTCP 라이브러리는 데이터 수신 이벤트에 대한 콜백을 제공하여, 서버가 클라이언트로부터 데이터를 받았을 때 즉시 반응하도록 할 수 있다.