컴퓨터공학과 20210353 김현진
프로토콜 설계
클라이언트 → 서버 (JSON 형식)
{
"user" = "클라이언트 이름"
"echooption" = 옵션 숫자(1~4 선택), 이때 4는 보내지 않고 클라이언트에서 프로세스 종료
"message" = "보낼 메시지"
}
- 클라이언트가 입력한 이름, 메시지, 옵션 값을 기반으로 JSON 형식의 요청 패킷을 구성하여 서버에 전송
- JSON 구성
- “user” : 메시지를 보낸 사용자 이름
- “echooption” : 서버에서 메시지를 처리할 방식 선택(1~4)
- “message” : 클라이언트가 보낼 실제 메시지 내용
서버 → 클라이언트 (정상인 경우)
{
"status": 상태 코드,
"message": "메시지"
}
서버 → 클라이언트 (오류 응답 패킷을 전송)
{
"status": 상태 코드,
"error": "오류 설명"
}
- 클라이언트의 잘못된 요청이나 서버 처리 중 예외가 발생한 경우, 적절한 상태 코드를 포함한 JSON 응답을 보냄
- 예시
{
"status": 403,
"error": "option input error: non-integer"
}
| 구분 |
오류 내용 |
상태 코드 |
오류 메시지 |
| 클라이언트 |
0 이하의 정수 입력 오류 |
401 |
option input error: integer less than 1 |
| 클라이언트 |
5 이상의 정수 입력 오류 |
402 |
option input error: greater than 4 |
| 클라이언트 |
정수가 아닌 실수로 입력 오류 |
403 |
option input error: non-integer |
| 클라이언트 |
문자 입력 오류 |
405 |
option input error: non-numeric input |
패킷의 송신 수신
- 클라이언트는 사용자로부터 입력을 받아 이 정보를 바탕으로 JSON 형태로 패킷을 생성하고 서버로 전송