이 프로젝트는 VirtualBox 기반의 가상화된 CentOS 환경에서 C 언어와 TCP 소켓 프로그래밍을 활용하여 서버-클라이언트 간 데이터 통신을 구현한 애플리케이션입니다. 클라이언트가 가수 이름을 입력하면 서버는 해당 가수의 노래 목록을 반환하고, 노래 제목을 입력하면 해당 노래를 부른 가수를 반환합니다.
가수와 노래 검색 기능
클라이언트는 가수 이름을 입력하여 해당 가수의 노래 목록을 서버로부터 받을 수 있습니다. 서버는 미리 정의된 가수들과 그들의 노래 목록을 저장하고 있으며, 클라이언트로부터 요청이 들어올 때 이를 확인하고 결과를 전송합니다.
TCP 소켓 통신
이 프로젝트는 TCP 소켓을 활용하여 클라이언트와 서버 간의 신뢰성 있는 데이터 전송을 구현하였습니다. 클라이언트는 소켓을 통해 서버에 연결되고, 가수 이름을 서버로 전송한 후, 서버로부터 응답을 받는 방식으로 동작합니다. 서버는 여러 클라이언트의 요청을 처리할 수 있는 구조로 설계되었습니다.
데이터 유효성 검사 및 종료
클라이언트는 'q' 또는 'Q'를 입력하여 서버와의 연결을 종료할 수 있으며, 서버는 유효하지 않은 요청이나 입력에 대해 적절한 메시지를 반환합니다.
gcc
컴파일러 및 네트워크 프로그래밍 관련 라이브러리 확인하고, vim
, nano
등의 텍스트 편집기를 활용하여 코드 작성했습니다.socket()
, bind()
, listen()
, accept()
함수를 이용해 클라이언트 요청을 수락하는 구조 작성했습니다.socket()
, connect()
함수를 사용해 서버에 연결하는 기능 구현했습니다.char 배열
로 저장하여 입력받은 가수나, 노래제목을 strcmp()
문자열 비교를 통해 데이터를 검색할 수 있도록 구현했습니다."songs:x"
를 반환하여 클라이언트가 이를 감지하도록 구현했습니다../server <포트 번호>
실행 후 대기합니다../client <서버 IP> <포트 번호>
실행 후 서버와 연결합니다."q"
또는 "Q"
입력 시 클라이언트와 서버가 정상적으로 종료되는지 확인합니다.