🍭
webserv
  • Webserv tutorials
  • 학습 | 웹(Web)
  • 학습 | 웹서버(Webserver)
  • 학습 | HTTP 개요
  • 학습 | 리퀘스트(Request)
  • 학습 | 리스펀스(Response)
  • 학습 | CGI
  • 학습 | RFC
  • 학습 | 소켓과 TCP 커넥션
  • 학습 | 서브젝트(Mandatory)
  • 실습 | 서버 프로그램
  • 실습 | 클라이언트 프로그램
  • 실습 | 통신 테스트
  • 실습 | telnet
  • 실습 | nginx
  • 설계 | 설계의 중요성
  • 설계 | 플로우차트
  • 설계 | 설정 파일
  • 설계 | 객체 설계
  • 설계 | 팀 코드 컨벤션
  • 설계 | 클래스 명세서
  • 설계 | 협업환경 구성
  • 구현 | 메인함수
  • 구현 | 서버생성
  • 구현 | Select
  • 구현 | 서버제어
  • 구현 | 요청 읽기
  • 구현 | 메소드 실행하기
  • 구현 | 응답 생성하기
  • 구현 | CGI 실행하기
  • 구현 | 응답 보내기
  • 구현 | 주요 메소드
  • 구현 | Libft
  • 구현 | 구현 테크닉 16
  • 구현 | 로그
  • 테스트 | Postman
  • 테스트 | Tester
  • 테스트 | 브라우저
  • 테스트 | Siege
  • 보너스 파트
  • 학습 레퍼런스
  • 튜토리얼을 끝내며
Powered by GitBook
On this page

Was this helpful?

실습 | 통신 테스트

서버 프로그램과 클라이언트 프로그램을 작성했다면 정상적으로 작동하는지 테스트를 해봐야겠죠? 아래와 같이 테스트를 해봅시다.

터미널 창을 두 개 띄우고, 하나는 서버 프로그램을 실행시킨 뒤 다른 하나는 클라이언트 프로그램을 실행시킨다. usleep이나 sleep을 사용해서 클라이언트 프로그램에서 서버 프로그램으로 정기적 메시지를 보내고, 서버 프로그램은 자신이 받은 메시지를 출력한 뒤 클라이언트 프로그램으로 그대로(혹은 모두 대문자로 바꿔서) 되돌려준다. 클라이언트 프로그램은 돌려받은 응답을 출력한다.

잘 되나요? 브라우저를 클라이언트로 삼아서 테스트를 해봅시다. 이 경우 최소한의 응답 양식을 갖춰서 전송할 필요가 있는데요.

HTTP/1.1 200 OK\r\nContent-Length:X\r\n\r\n

위의 텍스트를 앞에 놓고, 리턴할 데이터를 이어서 붙인 뒤 body로 붙인 문자열의 길이만큼 X 값을 설정해줍니다. 정상적으로 설정되었다면 브라우저에서 127.0.0.1:[설정한 포트 번호] 형식으로 주소창에 입력했을 때 응답 본문이 뜰 거에요!

netwhat 기억나시나요? mac이라면 option 키를 누른 상태에서 우측 상단의 와이파이 아이콘을 눌렀을 때 ip를 확인할 수 있고, 다른 운영체제도 각자의 방법으로 ip를 확인할 수 있는데 이를 기반으로 bind 함수를 실행하면 핸드폰으로도 접속이 가능합니다. 한 번 테스트해보세요!

Previous실습 | 클라이언트 프로그램Next실습 | telnet

Last updated 4 years ago

Was this helpful?