에티버스러닝에서 K-digital트레이닝으로 VR과정을 수강하는데, 오늘 세번째 네트워크 수업을 들었다.
금일 배운 내용 중 저번주 배웠지만 또 봐도 새로운 내용을 아래와 같이 정리하면서 머리에 쏙쏙 넣어보겠다.
아래 코드는 TCP 서버 코드이고, 클라에서 두자리 자연수 더하기 연산식(10+20)을 보내면 서버에서 계산해서 클라에게 답(10+20=30)을 보내주는 코드이다.
서버
line19
- 소켓 만들기(주소체계, 소켓타입, 프로토콜)
- 일반적으로 같은 소켓타입이어도 프로토콜이 두개 이상 존재함. 그래서 세번째 인자로 명시적으로 지정하는데, TCP에서는 앞에 두개 인자만으로도 프로토콜 결정할 수 있어 대부분 0을 넣는다)
- AF_INET
- IPv4기반 TCP 프로토콜 이용할 때의 주소체계
- SOCK_STREAM
- 신뢰성 있는 데이터 전송 기능 제공, 연결형 프로토콜
line 26
- sin_family
- 주소체계를 의미함
- AF_INET 값을 사용함
- sin_addr
- IP 주소 의미함
- 32비트 in_addr 구조체 타입!
- sin_port
- 포트 번호를 의미함
- 부호 없는 16비느 정수값 사용
line 41
- accept(클라이언트 접속 수용하는 소켓, 접속한 클라의 주소 정보, 소켓주소 구조체의 크기)
line 50
- substr( 첫번째 문자의 위치, 부분 문자열의 길이 )
- 문자열의 일부를 리턴해주는 함수
- 예시 10+20이 있을 때
- Temp.substr(0, 2)는
- 0번째 위치: 1
- 길이가 2면 ->"10"을 반환
- Temp.substr(2,1)은
- 2번째 위치: +
- 길이가 1이면-> "+"반환
- Temp.substr(3,2)는
- 3번째 위치: 2
- 길이가 2면 ->"20"반환
- Temp.substr(0, 2)는
line 54
- atoi(변환할 문자열)
line 59
- _itoa( 변환할 숫자, 변환결과 보유하는 버퍼, 10진수 )
- 인티저 투 아스키코드라고... 챗지피티가 알려줬는데, 결국 정수형 숫자를 아스키 문자열로 바꿔주는 함수
- https://learn.microsoft.com/ko-kr/cpp/c-runtime-library/reference/itoa-itow?view=msvc-170
'네트워크' 카테고리의 다른 글
[네트워크] TCP와 UDP의 특징 (0) | 2024.08.02 |
---|---|
[에티버스러닝] select함수 이용해서 여러 명 접속 가능한 TCP 에코 서버 (2) | 2023.06.01 |
[에티버스러닝] 프로그램/프로세스/쓰레드 개념정리 (0) | 2023.05.25 |
TCP 서버 / 클라이언트 함수 (1) | 2023.05.19 |
TCP/IP 프로토콜 (3) | 2023.05.11 |