▶ 과제2: "4-3 에코 클라이언트의 문제점" 이 무엇인지
그리고 ch.5에서 에코 클라이언트 문제점 해결 방안 2개 설명
(p.55 문제점도 함께 비교)
1. echo_clnt.c 의 문제점

>
message 문자열을 한번에 write하고, 한번에 read 하기를 바란다는 점이다
근본적인 이유는 TCP 클라이언트는 흐름은 순서대로 가지만 메세지 단위는 신경을 쓰지 않는다는 특징이 있는데
이는 예를 들어 "Hello World" 라는 문자열을 보냈을 때 서버가 read 하면 Hello(5바이트) World(5바이트) 로 읽을 가능성도 있고, write가 두 번 호출되어 3바이트씩 서로 다른 메시지를 보냈는데 6바이트로 한번에 읽을 가능성도 있는 것이다 !
이는 TCP가 경계가 없다는 특징을 잘보여준다 !
2. 해결방안 첫번째 => 기다리기
>
write 한 후 몇 분 있다가 read 하면 된다
문자열 데이터가 모두 수신된 다음 read 하면 전부를 읽을 수 있다
3. 해결방안 두번째 => 다 읽을 때까지 반복하기
write 한 바이트의 크기를 다른 변수에 저장하고
read를 시도하는데 이 때 write를 시도한 바이트 크기만큼 지속적으로 시도하는 것이다.

▶과제3: 로그인 구현
1)클라이언트에서 입력받은 ID, PW 를 서버로 전송
2)서버에서 전달받은 ID, PW 체크하고, 체크 결과를 클라로 전송
3)클라에서 전달받은 체크 결과에 따라 처리하는 로직 구현
<id_pass_server.c>

<id_pass_client.c>

'NETWORK > Assignment' 카테고리의 다른 글
| C Network Study4~5 (0) | 2025.08.24 |
|---|---|
| C Network Study 2 (0) | 2025.08.13 |
| C Network Study 1 (2) | 2025.08.11 |