Page 213 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 213
15. 데이터 수신
- 폴링방식 : UCSRA(RXC)를 체크하여 데이터를 리턴(return UDR)한다.
void USART_Receive(void) {
while (!(UCSRA & (1<<RXC)); //데이터가 수신될 때까지 대기
return UDR; } //버퍼에 수신된 데이터를 반환
- 인터럽트 방식 : UCSRA의 RXC(수신 완료) 인터럽트
RXC 플래그 체크 인터럽트를 위해 UCSRB(RXCIE)을 1로 활성화.
인터럽트 방식의 수신이 진행 중이라면, 수신 완료 처리 프로그램은 RXC 플래그를
클리어 시키기 위해 UDR에 있는 수신 데이터를 읽어야 한다. 그렇지 않을 경우 새로운
인터럽트가 인터럽트 프로그램이 종료될 때마다 실행될 것이다.
■ 데이터 수신은 언제 데이터가 전송되어 올지 모르기 때문에 폴링 방식보다는 인터럽트
방식을 이용하는 것이 편리하다.
마. 소켓통신
* 소켓통신이란?
- 한 시스템 또는 네트워크상에서 통신을 가능하게 해주는 통신 인터페이스라고 한다.
- 한 쪽에서 보낸 신호를 다른 쪽에서 받으면 서로 연결이 성립되고 그 후 데이터를 주고 받
는 통신이다.
- 네트워크상에서 서버와 클라이언트 두 개의 프로그램이 특정 포트를 통해 양방향 통신이
가능하도록 만들어주는 소프트웨어 장치라한다.
- IP address랑 Port넘버가 합쳐진 네트워크상에서 서버 프로그램과 클라이언트 프로그램이
통신할 수 있도록 해주는 소프트웨어 장치이다.
- 두 프로그램이 네트워크를 통해 서로 통신을 수행할 수 있도록 양쪽에 생성되는 링크의 단
자이다.
- 소켓통신은 크게 두 가지로 나뉘게 되는데 TCP(Transmission Control Protocol)과
UDP(User Datagram Protocol)로 나뉘게 된다.
1. 소켓의 정의
소켓(socket)은 1982년 BSD(Berkeley Software Distribution) UNIX 4.1에서 처음 소개됐으
며 현재 널리 사용되는 것은 1986년의 BSD UNIX 4.3에서 개정된 것입니다. 소켓은 소프트
웨어로 작성된 추상적인 개념의 통신 접속점이라고 할 수 있는데 네트워크 응용 프로그램은
소켓을 통하여 통신망으로 데이터를 송수신하게 된다. 소켓은 응용 프로그램에서 TCP/IP를
이용하는 창구 역할을 하며 응용 프로그램과 소켓 사이의 인터페이스 역할을 하고 있다.
2.소켓의 구조
클라이언트 어플리케이션은 서버와 통신을 하기위해 어떠한 메시지 또는 데이터를 서버에게
보내려 할 것이다. 그러기위해서는 네트워크에 연결하여 서버에 접속하여야 한다. 그리고 소
- 206 -