Server측(가게측, 왼쪽)은 위에서 보는것처럼 소켓을 생성하여 각 테이블에서의 요청을 기다리고 있는다.
Client측(table, 오른쪽)은 기본으로 main_menu화면을 바탕으로 하여 번호를 눌러서 주문을 처리할 수가 있다.
실제적으로 send_order() 함수가 실행되면서 소켓이 생성되어 실제적으로 통신이 가능하다.
2. 구현방식
소켓을 이용한 TCP 전송모델 이용
Memory mapped 방식을 이용한 LCD, Key pad의 제어
교재에서 실습했던 방식을 이용하여 각각의 디바이스를 제어하였다. 드라이버를 통한 제어방식은 드라이버가 에러률이 상당히 높은 관계로 몇 번의 시행착오 끝에 이 방식을 이용하여 제작하게 되었다.
예)
Client.c 파일에서
#include `lcd.h`
#include `fontlib.h`
#include `key.h`
위의 예제는 key와 lcd를 제어하기위한 함수를 담고 있는 헤더파일을 include함으로써 제어가 가능해진다.
Makefile파일에서
client: $(CLIENT)
$(CC) -o $@ client.c lcd.c key.c fontlib.c -lnsl
$(STRIP) $@
cp client /home/nfs/usr
위처럼 제어하기 위한 함수를 담고 있는 lcd.c key.c fontlib.c파일을 같이 컴파일 함으로써 제어가 가능해진다.
3. 소스코드
Client.c
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include `lcd.h`
#include `f…
…