서버 예제를 실행하고 실제 listening 상태인것을 확인하고 싶으면
netstat -ano | find "포트번호"
를 통해 실제로 리스닝 중인지 확인할 수 있다.
클라이언트는 현재 구조상 실행과 동시에 연결되는 구조이다
wireshark를 통해 확인해보면
로컬에서 3-way handshaking을 통해 연결 절차를 지행하고 있다.
현재는 한 호스트에서 통신을 하고 있기 때문에 출발/목적지 주소가 같다.
확인해보면 클라이언트는 임의의 포트번호를 할당받아 서버 포트인 25000에 연결 요청을 하고있다.
다시한번 확인해보니 established, 제대로 연결되고 있다.
클라이언트 측에서 임의의 데이터를 전송하면
6바이트가 전송되는 것을 볼 수 있다
또한 서버에서는 클라이언트에서 받은 코드를 그대로 재전송 해주는데
확인 결과 128바이트가 전송되고 있었다.
즉 서버 쪽에서는 버퍼사이즈 자체를 전체 전송하고 있어 불필요한 트래픽이 발생하고 있는 것이다.
sizeof가 아닌 nReceive만큼 send해보니, 해당 byte만큼 송신이 되는 것을 확인 할 수 있다.
'프로그래밍 > 소켓 프로그래밍 입문' 카테고리의 다른 글
send와 recv는 1대1로 매핑되어 동작하는가? (0) | 2025.01.13 |
---|---|
소켓의 I/O버퍼 알아보기 (0) | 2025.01.13 |
TCP 3-Way Handshake와 4-Way Handshake (0) | 2025.01.11 |
TCP 서버의 소켓 처리와 데이터 송수신 (0) | 2025.01.08 |
IP 주소와 포트 번호, 소켓의 관계+ 바인딩이란? (0) | 2025.01.08 |